1
私はこの移行を行っています。移行ロールバック時にフィールドをNulleableにしないでください
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フィールドのNULL可能になり、正常に動作が、私はロールバックしようとすると、このエラーを返します:
[PDOException]
SQLSTATE[HY000]: General error: 1832 Cannot change column 'category_id': used in a foreign key constraint 'products_category_id_foreign'
私はロールバックに何をすべき?この移行の目的は、実行時にフィールドをNULLにし、ロールバック時に値を返さないようにすることです。
ロールバックすると、null category_idを含むすべての行が突然無効になるという問題があります。そのため、最初に行を削除して実行する必要があります。 (それは外部キーの制約であるため、それでも動作しない可能性がありますが、試してみる価値があります)。 –