Question

J'ai un problème lors de la mise à niveau d'une application django et mysql avec le sud.

Je l'ai essayé de faire une mise à niveau sur la base sql avec le code généré par la commande django sqlall et j'ai un problème similaire.

Voici le code sql:

CREATE TABLE `programmations_basissupport` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `value` numeric(6, 0) NOT NULL
)

ALTER TABLE `programmations_concert` ADD `basis_support_id` integer AFTER program_status_id;

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

Une erreur est déclenché lors de l'ajout de la contrainte FK:

ERROR 1005 (HY000): Can't create table 'apidev_mnl.#sql-106e_632b00a' (errno: 150)

personne-t-il une idée?

Mise à jour:. Valeurs DEFAULT où manquante, mais même si j'ajoute la valeur par défaut = « » dans le modèle django, la création de clés étrangères ne

Merci pour votre aide

Était-ce utile?

La solution 3

J'ai finalement résolu le problème grâce à une solution de contournement. Les travaux alter ok sur ma machine dev pendant qu'il échoue sur l'hôte. Je ne trouve pas la raison, mais je réussis à le faire fonctionner en exportant, la migration sur ma machine dev et réimporter.

Autres conseils

On dirait que vous essayez d'ajouter une contrainte avec un symbole / nom qui existe déjà.

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

peut être modifié à:

ALTER TABLE `programmations_concert` ADD FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

Il y avait le même problème. Et enfin, je trouve que dans le champ de table référencée était « non signé », mais dans le tableau faisant référence -. Non non signé

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top