无法在迁移回滚时使字段变得不可靠

时间:2016-08-26 21:01:02

标签: php laravel eloquent migration

我有这个迁移。

public function up()
{
    Schema::table('products', function (Blueprint $table) {
        $table->integer('category_id')->nullable()->unsigned()->change();
    });
}


public function down()
{
    Schema::table('products', function (Blueprint $table) {
        $table->integer('category_id')->nullable(false)->change();
    });
}

它使category_id字段在up方法上可以为空并且工作正常但是当我尝试回滚时它返回此错误:

[PDOException]
SQLSTATE[HY000]: General error: 1832 Cannot change column 'category_id': used in a foreign key constraint 'products_category_id_foreign'

回滚时该怎么办?此迁移的目的是使字段在运行时可为空,并在回滚时使其不可为空。

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试关闭外键约束。但请记住这一点的含义。