Update table innoDB et Django

28 Jan

En travaillant avec le framework Djangoet une base de données InnoDB, il se peut que lors d'un enregistrement ou bien d' une mise à jour d'un champ de modèle lié, vous recontreriez une erreur du type:

IntegrityError 1452 Cannot add or update a child row: a foreign key constraint fails

Cette erreur apparaît lorsque  que vous avez des tables en InnoDB car InnoDB gère les clés étrangères et les contraintes d'intégrités, la solution et donc de passer vos tables en MyISAM, mais si l'on veut garder les avantages de l'ÍnnoDB et bien il faudra choisir une autre solution

Ajouter l'option Init_command SET foreign_key_checks

Pour remédier à ça il suffit dans le settings de votre application Django, d'ajouter dans le dictionnaire OPTIONS l'option INIT_COMMAND et SET foreign_key_checks = 0 pour désactiver le check des contraintes d'intégrités, voici l'exemple:

DATABASES={'default':{
    ...
    'OPTIONS':{
        "init_command":"SET foreign_key_checks = 0;"
    ,}
,}
Publié le: Samedi 28 janvier 2017
blog comments powered by Disqus
Monter

© Circonflex-studio - Tous droits réservés - Mentions legales
Développeur web indépendant / Webdesigner / Intégrateur
Nice - Cannes - Monaco - Antibes - côte d'azur | site valide HTML 5

Ce site à été développé en Python avec le framework Django

"http://www.cssawards.net/nominee/circonflex-studio/"