我有这个迁移。
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'
回滚时该怎么办?此迁移的目的是使字段在运行时可为空,并在回滚时使其不可为空。
答案 0 :(得分:1)
我认为您可以尝试关闭外键约束。但请记住这一点的含义。