Maison >base de données >tutoriel mysql >Comment résoudre les erreurs d'intégrité de chargement du luminaire Django causées par des conflits ContentType ?

Comment résoudre les erreurs d'intégrité de chargement du luminaire Django causées par des conflits ContentType ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-01 15:55:12485parcourir

How to Resolve Django Fixture Loading IntegrityErrors Caused by ContentType Conflicts?

Problèmes avec ContentTypes lors du chargement du luminaire Django

Problème :

Lors de la tentative de chargement de Django luminaires dans une base de données MySQL, vous rencontrez des conflits de types de contenu. Après avoir vidé les données de plusieurs applications, y compris « escola », et tenté de charger les données en tant qu'appareil, vous recevez la violation de contrainte suivante :

IntegrityError: (1062, "Duplicate entry 'escola-t23aluno' for key 2")

Il semble que Django tente de recréer des types de contenu avec différents types de contenu principaux. valeurs clés qui entrent en conflit avec les valeurs du luminaire.

Solution :

La solution recommandée est pour utiliser dumpdata --natural. Cette option utilise des « clés naturelles » pour représenter des clés étrangères, qui sont plus durables et moins sujettes aux conflits. Par exemple, au lieu d'utiliser Permission.id, il utilise Permission.codename.

Conseils supplémentaires :

Considérez les arguments supplémentaires suivants pour dumpdata :

  • --indent=4 : ajoute une indentation pour plus de lisibilité.
  • -e sessions : exclut la session data.
  • -e admin : exclut l'historique des actions de l'administrateur.
  • -e contenttypes -e auth.Permission : exclut les objets qui sont automatiquement recréés lors de la synchronisation lorsqu'ils sont utilisés avec --natural. Cela peut éviter les problèmes d'alignement avec les numéros d'identification.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn