在Laravel 5中使用--force生产播种机时数据库陷入迁移

时间:2018-05-22 01:43:45

标签: laravel laravel-migrations laravel-seeding

数据库在Laravel中使用--force生产的播种机停滞不前。我在Laravel Homestead和运行Amazone linux的EC2 AWS上的效果相同。 laravel.log中没有消息。

它永远不会结束。如果我用<ctrl>+<c>暂停它,我会看到表已创建,但播放器没有运行,表是空的。

Detalis:

我的迁移:

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

2 个答案:

答案 0 :(得分:3)

尝试在迁移命令中包含-vvv标志,这会增加任何消息的详细程度,这可能会发现问题。

  

- verbose(-v | vv | vvv)增加消息的详细程度:1表示正常输出,2表示更详细的输出,3表示调试

$ php artisan migrate --force

至于问题本身,请尝试在--force调用中加入db:seed标记,因为您已将其包含在迁移中。

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

答案 1 :(得分:0)

我在运行php artisan migrate时遇到了同样的问题,但是什么也没发生,一直停滞不前。 --force或冗长的内容将无济于事。

我遇到的问题是.env中的DB_PORT设置不正确。