laravel 5.8迁移外键问题

时间:2019-05-19 23:33:48

标签: mysql laravel-5 database-migration

好吧,我被困住了。似乎很简单,我也看到其他人也遇到了问题。我正在使用最新版本5.8.x。我创建表没有问题,但是当我从一个新的数据库开始并添加外键时出现错误-

  

Illuminate \ Database \ QueryException:SQLSTATE [HY000]:常规错误:   1005无法创建表apbase#sql-546_1a14(错误号:150“ Foreign   键约束的格式不正确”)(SQL:更改表apconfig   添加约束apconfig_apevent_id_foreign外键   (apevent_id个引用apeventsid))

我已重命名了迁移文件,因此任何带有外键的硝化都将在参考表之后迁移。迁移文件是使用artisan创建的。

Schema::create('apevents', function(Blueprint $table)
        {
            $table->bigIncrements('id');
            $table->string('name', 200);
            $table->timestamps();
        });
Schema::create('apconfig', function(Blueprint $table)
    {
        $table->bigIncrements('id');
        $table->bigInteger('apevent_id');
        $table->foreign('apevent_id')->references('id')->on('apevents');
        $table->string('name', 200);
        $table->timestamps();
    });

1 个答案:

答案 0 :(得分:2)

您在apevent_id表中的apconfig应该是

$table->unsignedBigInteger('apevent_id');