База данных застревает в миграции с сеялкой на производстве с --force в Laravel 5

База данных застревает в миграции с сеялкой на производстве с --force в Laravel. Тот же эффект у меня есть на Laravel Homestead и EC2 AWS под управлением Amazone linux. Нет сообщений в laravel.log.

Это просто никогда не заканчивается. Если я останавливаю его с помощью <ctrl>+<c>, я вижу, что таблица создана, но сеялка не запущена, таблица пуста.

Детали:

Моя миграция:

public function up()
{
    Schema::create('products', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name', 50);
        $table->decimal('price', 8, 2); //up to 999,999.99
    });

    Artisan::call('db:seed', ['--class' => 'ProductsSeeder']);
}

Я называю это так:

$ php artisan migrate --force

мой .env

#APP_ENV=local

APP_DEBUG=false

семена базы данных.

class ProductsSeeder extends Seeder
{
    public function run()
    {
        DB::table('products')->insert([
            'id'                   => 1,
            'name'                 => 'super product',
            'price'                => 999.99,
        ]);
    }

Протестировано Laravel 5.6


person Yevgeniy Afanasyev    schedule 22.05.2018    source источник
comment
Можете выложить код сеялки?   -  person DevK    schedule 22.05.2018
comment
Разместил код сеялки, но грустно, что комментарий, запрашивающий сидер, привлек 2 голоса, хотя он не имеет ничего общего с кодом сеялки.   -  person Yevgeniy Afanasyev    schedule 22.05.2018
comment
Что происходит, когда вы выполняете команду php artisan db:seed из терминала? Работает ли это так, как ожидалось? Вы также можете попробовать запустить миграцию с подробным флагом php artisan migrate --force -vvv, чтобы узнать, получаете ли вы какие-либо сообщения об ошибках.   -  person Jeemusu    schedule 22.05.2018
comment
@YevgeniyAfanasyev очень сложно всем остальным рассказать об этом, не имея к этому доступа   -  person DevK    schedule 22.05.2018
comment
Этот класс не является частью сида по умолчанию, но если я делаю php artisan db:seed --class=[ProductsSeeder], то все идет нормально.   -  person Yevgeniy Afanasyev    schedule 22.05.2018
comment
@devk, хорошая мысль. Согласен и проголосовал.   -  person Yevgeniy Afanasyev    schedule 22.05.2018
comment
Нет вывода при использовании подробного флага -vvv? Интересно, в этом случае вам также нужно добавить флаг --force к начальному вызову, поскольку вы используете его при миграции?   -  person Jeemusu    schedule 22.05.2018
comment
@Джимусу, Бинго!!! Ты спас меня. Спасибо.   -  person Yevgeniy Afanasyev    schedule 22.05.2018
comment
@YevgeniyAfanasyev Добавил ответ.   -  person Jeemusu    schedule 22.05.2018
comment
Использование --force и/или -vvv, похоже, не имеет значения. Мой конфиг правильный.   -  person Derk Jan Speelman    schedule 10.04.2019
comment
проверьте мой комментарий к принятому ответу   -  person Yevgeniy Afanasyev    schedule 11.04.2019


Ответы (2)


Попробуйте включить флаг -vvv в команду переноса, это повысит уровень детализации любых сообщений, что может выявить проблему.

--verbose (-v|vv|vvv) Увеличить уровень детализации сообщений: 1 для обычного вывода, 2 для более подробного вывода и 3 для отладки

$ php artisan migrate --force

Что касается самой проблемы, попробуйте включить флаг --force в свой вызов db:seed, так как вы включили его в миграцию.

Artisan::call('db:seed', ['--class' => 'ProductsSeeder', '--force' => true,]);

person Jeemusu    schedule 22.05.2018
comment
'--force' => true, помогло. Спасибо. - person Yevgeniy Afanasyev; 22.05.2018
comment
'--force' => true не работает без миграции вызовов с --force. - person Kostiantyn; 22.05.2020

У меня была такая же проблема с запуском php artisan migrate, и ничего не происходит, зависает. --force или многословие не поможет.

Проблема, с которой я столкнулся, заключается в том, что DB_PORT в .env не был установлен правильно.

person antoni    schedule 10.08.2018
comment
У меня такая же проблема, он зависает даже при использовании img --force. Я проверил порт, и он указывает на правильный порт (3306). Любая другая идея? - person MrCujo; 13.08.2018
comment
@MrCujo у меня такая же проблема - person Derk Jan Speelman; 10.04.2019