J'ai démarré un nouveau projet laravel 5.5 et l'erreur suivante s'affiche lorsque j'essaie d'ajouter une clé étrangère à ma table users
: Erreur générale: 1215 Impossible d'ajouter une contrainte de clé étrangère (SQL: alter table users
Ajouter une contrainte users_organization_id_foreign
clé étrangère (organization_id
) références organizations
(id
) suppression en cascade)Ajout d'une contrainte de clé étrangère avec une migration Laravel
Voici le code de migration pour la table organization
:
Schema::create('organizations', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('subdomain')->nullable();
$table->timestamps();
$table->softDeletes();
});
Voici le code de migration pour la table users
:
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->integer('organization_id')->unsigned();
$table->foreign('organization_id')->references('id')->on('organizations');
$table->string('first_name');
$table->string('last_name');
$table->string('email')->unique();
$table->timestamps();
$table->softDeletes();
});
J'ai fait des recherches en ligne cette erreur et la chose commune pour vous assurer de sont que les types de données sont les mêmes. D'après ce que je peux voir, ils sont pareils. Ce qui est encore plus fou est que si je lance cette requête dans la base de données directement cela fonctionne:
alter table `users` add constraint `users_organization_id_foreign` foreign key (`organization_id`) references `organizations` (`id`)
Toute aide est grandement appréciée!
Avez-vous ajouté dbal à votre compositeur.json? Si ce n'est pas le cas, compositeur nécessite doctrine/dbal – pseudoanime