我有这个迁移。
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'
回滚时我该怎么做?此迁移的目的是使字段在运行时可为空,而在回滚时使其不可为空。
我认为你可以尝试关闭外键约束。请记住这句话的含义。