Laravel 5.3 db: команда seed просто не работает

Я делаю все по книге:

  1. Установлено свежее приложение Laravel 5.3.9 (все мои не свежие приложения выдают одну и ту же ошибку)

  2. бежать php artisan make:auth

  3. создать миграции для новой таблицы `php artisan make: миграция create_quotations_table --create=quotations

    Schema::create('quotations', function (Blueprint $table) {
        $table->increments('id');
    
        $table->string('text');
    
        // my problem persists even with the below two columns commented out
        $table->integer('creator_id')->unsigned()->index('creator_id');
        $table->integer('updater_id')->unsigned()->index('updater_id');
    
        $table->softDeletes();
        $table->timestamps();
    });
    
  4. Тогда я бегу php artisan migrate

  5. Затем я определяю новое семя php artisan make:seeder QuotationsTableSeeder

Полное содержание файла, после того, как я добавлю простую вставку:

<?php

use Illuminate\Database\Seeder;

class QuotationsTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    DB::table('quotations')->insert([
        'text' => str_random(10),

    ]);
}
}
  1. Тогда я бегу php artisan db:seed

проблема

это просто не работает. Нет отзывов, нет ошибок в файле журнала. Эта проблема сохраняется как в моей локальной среде (Win7, новейший WAMP-сервер), так и в моем Digital Ocean VPS, работающем на Ubuntu 16.04. Все вышеперечисленные шаги я предпринял в нескольких отдельных приложениях - безрезультатно. Также под сервером Laragon 2.0.5.

что я пробовал

php artisan optimize как предложено здесь.

composer dump-autoload я php artisan clear-compiled также не принесли результатов

Я также попытался посеять, просто следуя официальному примеру документов - не удалось.

я добавил use DB; в исходный файл - до сих пор нет результата.

сделать

Помогите!!! Почему они не работают?

3 ответа

Решение

Вы звоните своей сеялке внутри DatabaseSeeder учебный класс? Сюда:

базы данных / семена /DatabaseSeeder.php

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(QuotationTableSeeder::class);
    }
}

Или добавьте --class опция при использовании php artisan db:seed команда, таким образом:

php artisan db:seed --class="QuotationTableSeeder"

После создания или удаления ваших сеялок не забудьте выполнить следующую команду:

composer dump-autoload

Если у кого-то еще есть проблемы с миграцией и посевом одновременно, попробуйте

php artisan migrate:fresh --seed

Работал на меня..

В моем случае (mariaDB) Проверьте свою автоматическую фиксацию.mariaDB/data/my.ini <= здесь Включите автофиксацию

Другие вопросы по тегам