Heim > Datenbank > MySQL-Tutorial > Wie behebe ich Django Fixture Loading IntegrityErrors, die durch ContentType-Konflikte verursacht werden?

Wie behebe ich Django Fixture Loading IntegrityErrors, die durch ContentType-Konflikte verursacht werden?

Patricia Arquette
Freigeben: 2024-12-01 15:55:12
Original
461 Leute haben es durchsucht

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

Probleme mit ContentTypes beim Laden von Django-Fixtures

Problem:

Beim Versuch, Django zu laden Beim Importieren von Fixtures in eine MySQL-Datenbank kommt es zu Contenttype-Konflikten. Nach dem Dumping von Daten aus mehreren Apps, einschließlich „escola“, und dem Versuch, die Daten als Fixture zu laden, erhalten Sie die folgende Einschränkungsverletzung:

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

Es scheint, dass Django versucht, Inhaltstypen mit unterschiedlichen Primärtypen neu zu erstellen Schlüsselwerte, die mit den Werten in der Vorrichtung in Konflikt stehen.

Lösung:

Die empfohlene Lösung ist um dumpdata --natural zu verwenden. Diese Option verwendet „natürliche Schlüssel“ zur Darstellung von Fremdschlüsseln, die langlebiger und weniger konfliktanfällig sind. Anstelle von Permission.id wird beispielsweise Permission.codename verwendet.

Zusätzliche Tipps:

Berücksichtigen Sie die folgenden zusätzlichen Argumente für dumpdata:

  • --indent=4: Fügt zur besseren Lesbarkeit Einrückungen hinzu.
  • -e-Sitzungen: Schließt Sitzungsdaten aus.
  • -e admin: Schließt den Administrator-Aktionsverlauf aus.
  • -e contenttypes -e auth.Permission: Schließt Objekte aus, die während der Synchronisierung automatisch neu erstellt werden, wenn sie mit --natural verwendet werden. Dies kann Ausrichtungsprobleme mit ID-Nummern verhindern.

Das obige ist der detaillierte Inhalt vonWie behebe ich Django Fixture Loading IntegrityErrors, die durch ContentType-Konflikte verursacht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage