Ho creato una tabella utilizzando la migrazione in questo modo:
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');
}
Devo cambiare questa tabella e rilasciare il riferimento alla chiave esterna e la colonna pick_detail_ide aggiungere una nuova colonna varchar chiamata skudopo la pick_idcolonna.
Quindi, ho creato un'altra migrazione, che assomiglia a questa:
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');
});
}
Quando eseguo questa migrazione, ottengo il seguente errore:
[Illuminate \ Database \ QueryException]
SQLSTATE [HY000]: Errore generale: 1025 Errore durante la ridenominazione di './dev_iwms_reboot/despatch_discrepancies' in './dev_iwms_reboot/#sql2-67c-17c464' (errno: 152) (SQL: alter tabledespatch_discrepanciesrilascia la chiave esterna pick_detail_id)[PDOException]
SQLSTATE [HY000]: Errore generale: 1025 Errore durante la ridenominazione di "./dev_iwms_reboot/despatch_discrepancies" in "./dev_iwms_reboot/#sql2-67c-17c464" (errno: 152)
Quando provo a invertire questa migrazione eseguendo il php artisan migrate:rollbackcomando, ricevo un Rolled backmessaggio, ma in realtà non sta facendo nulla nel database.
Qualche idea su cosa potrebbe esserci di sbagliato? Come si rilascia una colonna che ha un riferimento a chiave esterna?