Guter Tag,Laravel 5.2 Tropfen Fremdschlüssel
Ich versuche, einen Fremdschlüssel in einer Laravel 5.2 Migration wie dies umgesetzt zuvor fallen:
EDIT: Die Schaffung der ID in der Tabelle (vor der Verwendung Fremdschlüssel auf ihm) war:
$table->integer('agent_rights_id')->unsigned()->nullable();
Der Fremdschlüssel:
Schema::table('agents', function (Blueprint $table){
$table->foreign('agent_rights_id')->references('id')->on('agent_rights');
});
Mein dr op sieht wie folgt aus:
Schema::table('agents', function (Blueprint $table){
$table->dropForeign('agents_agent_rights_id_foreign');
$table->dropColumn('agent_rights_id');
});
Ich fand heraus, dass man den „echten“ Indexnamen und nicht das Etikett nehmen müssen - das habe ich schon von im vorherigen Schnipsel gedacht haben (als Hinweis auf this question).
Aber das gibt mir die Fehler:
[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './{name}/agents' to './{name}/#sql2-2a6-1d8' (errno: 152) (SQL: alter table `agents` drop foreign key `agents_agent_rights_id_foreign`)
[PDOException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './{name}/agents' to './{name}/#sql2-2a6-1d8' (errno: 152)
Researching diese keine wirklichen Lösungen bringt, nur Fehler Nachrichten von MySQL ...
Frage: Haben euch etwas darüber oder Was war falsch an meinem Schnipsel?
Ich tat, was in dieser Frage gesagt, bevor ich diesen Beitrag erstellt. Das ist nicht die gleiche Frage, denn ich habe bereits getan, was dort gesagt wird. – Mentenyia
Sie vermissen etwas, weil ich dasselbe in meinem Projekt ausgeführt habe und es funktioniert gut. Jedenfalls entferne ich das Duplikat und öffne es erneut. Ich überprüfe dein Skript erneut. Siehe die Laravel-Dokumentation https://laravel.com/docs/5.2/migrations. – Manish
Sie können auch einen Array-Wert übergeben, der automatisch den konventionellen Constraint-Namen verwendet, wenn er wie '$ table-> dropForeign ([' agent_rights_id ']) ablegt; ' – Manish