1
Ich habe diese Migration.Feld kann nicht auf Null gesetzt werden
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();
});
}
Es macht die category_id Feld nullable auf up-Methode und arbeiten gut, aber wenn ich versuche, es gibt diesen Fehler rückgängig zu machen:
[PDOException]
SQLSTATE[HY000]: General error: 1832 Cannot change column 'category_id': used in a foreign key constraint 'products_category_id_foreign'
Was soll ich auf Rollback zu tun? Der Zweck dieser Migration besteht darin, das Feld beim Ausführen nULL-fähig zu machen und es beim Rollback nicht rückgängig zu machen.
Das Problem ist, dass wenn Sie es zurückrollen, jede Zeile, die eine null category_id enthält, plötzlich ungültig wird. Sie müssen also zuerst diese Zeilen entfernen, um sie auszuführen. (Und es funktioniert möglicherweise auch dann nicht, weil es eine Fremdschlüsseleinschränkung ist - aber es ist einen Versuch wert.) –