Ich habe eine Tabelle mit folgender Migration erstellt:
public function up()
{
Schema::create('despatch_discrepancies', function($table) {
$table->increments('id')->unsigned();
$table->integer('pick_id')->unsigned();
$table->foreign('pick_id')->references('id')->on('picks');
$table->integer('pick_detail_id')->unsigned();
$table->foreign('pick_detail_id')->references('id')->on('pick_details');
$table->integer('original_qty')->unsigned();
$table->integer('shipped_qty')->unsigned();
});
}
public function down()
{
Schema::drop('despatch_discrepancies');
}
Ich muss diese Tabelle ändern und die Fremdschlüsselreferenz & Spalte pick_detail_id
löschen und eine neue varchar-Spalte hinzufügen, die sku
nach der pick_id
Spalte aufgerufen wird.
Also habe ich eine weitere Migration erstellt, die folgendermaßen aussieht:
public function up()
{
Schema::table('despatch_discrepancies', function($table)
{
$table->dropForeign('pick_detail_id');
$table->dropColumn('pick_detail_id');
$table->string('sku', 20)->after('pick_id');
});
}
public function down()
{
Schema::table('despatch_discrepancies', function($table)
{
$table->integer('pick_detail_id')->unsigned();
$table->foreign('pick_detail_id')->references('id')->on('pick_details');
$table->dropColumn('sku');
});
}
Wenn ich diese Migration ausführe, wird folgende Fehlermeldung angezeigt:
[Illuminate \ Database \ QueryException]
SQLSTATE [HY000]: Allgemeiner Fehler: 1025 Fehler beim Umbenennen von './dev_iwms_reboot/despatch_discrepancies' in './dev_iwms_reboot/#sql2-67c-17c464' (Fehler: 152) (SQL: alter table)despatch_discrepancies
Fremdschlüssel löschen pick_detail_id)[PDOException]
SQLSTATE [HY000]: Allgemeiner Fehler: 1025 Fehler beim Umbenennen von './dev_iwms_reboot/despatch_discrepancies' in './dev_iwms_reboot/#sql2-67c-17c464' (Fehler: 152)
Wenn ich versuche, diese Migration durch Ausführen eines php artisan migrate:rollback
Befehls rückgängig zu machen , wird eine Rolled back
Meldung angezeigt, die jedoch in der Datenbank nichts bewirkt.
Irgendeine Idee, was falsch sein könnte? Wie löscht man eine Spalte mit einer Fremdschlüsselreferenz?