Heim  >  Artikel  >  Datenbank  >  Wie löse ich Django Fixture ContentType-Konflikte beim Laden in MySQL?

Wie löse ich Django Fixture ContentType-Konflikte beim Laden in MySQL?

DDD
DDDOriginal
2024-11-25 05:17:17411Durchsuche

How to Resolve Django Fixture ContentType Conflicts When Loading into MySQL?

Django-Fixtures und ContentType-Probleme

Der Versuch, Django-Fixtures in eine MySQL-Datenbank zu laden, kann zu Inhaltstypkonflikten führen. Das Dumpen von Daten aus einer bestimmten App führt zunächst zu Problemen mit fehlenden Fremdschlüsseln, sodass zusätzliche Apps in den Dump-Befehl einbezogen werden müssen. Beim Laden des Fixtures mit diesem Ansatz kommt es jedoch zu einer Einschränkungsverletzung aufgrund widersprüchlicher Primärschlüssel für Inhaltstypen.

Diese Situation ist auf den Versuch von Django zurückzuführen, Inhaltstypen dynamisch mit anderen Primärschlüsselwerten als den im Fixture vorhandenen zu erstellen. Wie im Fehlerverfolgungssystem von Django vorgeschlagen, besteht eine Problemumgehung darin, Daten aus der Inhaltstypen-App zu sichern.

Wenn jedoch benutzerdefinierte Modellberechtigungen definiert sind, wird die empfohlene Lösung fraglich. Um dieses Problem zu beheben, wird die Verwendung von --natural im Befehl dumpdata empfohlen. Diese Option verwendet natürliche Schlüssel für Fremdschlüssel, was die Haltbarkeit erhöht.

Hier ist ein Beispiel, das diesen Ansatz demonstriert:

./manage.py dumpdata --natural escola > fixture.json

Darüber hinaus gibt es weitere hilfreiche Argumente, die mit dumpdata verwendet werden können, darunter :

  • --indent=4: Verbessert die Lesbarkeit durch Einrücken Ausgabe
  • -e Sitzungen: Schließt Sitzungsdaten aus dem Dump aus
  • -e Admin: Schließt den Verlauf von Administratoraktionen aus
  • -e Contenttypes -e auth.Permission: Schließt Objekte aus Wird während der Synchronisierung automatisch neu erstellt, erfordert jedoch --natural, um Probleme bei der Primärschlüsselausrichtung zu verhindern

Das obige ist der detaillierte Inhalt vonWie löse ich Django Fixture ContentType-Konflikte beim Laden in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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