Django Fixtures laden Schwierigkeiten mit mehreren Anwendungsinhaltstypen
Beim Versuch, Django Fixtures in eine MySQL-Datenbank zu laden, kann es zu Inhaltstypkonflikten kommen. Dieses Problem tritt auf, wenn versucht wird, Daten von bestimmten Anwendungen zu isolieren, da die Zielanwendung oft auf Tabellen von anderen Apps angewiesen ist.
Um dieses Problem zu beheben, wird im Allgemeinen empfohlen, zusätzliche Apps in den dumpdata-Befehl einzuschließen, bis alle erforderlichen Tabellen vorhanden sind werden berücksichtigt. In diesem Fall wird jedoch die Datei „fixture.json“ generiert, aber Versuche, die Daten als Test-Fixture zu laden, führen zu Einschränkungsverletzungen aufgrund widersprüchlicher Primärschlüsselwerte.
Obwohl in der Django-Dokumentation empfohlen wird, die Datei zu sichern Mit der ContentTypes-App geben Sie an, dass Sie dies bereits tun. Die im Django Issue Tracker empfohlene Problemumgehung scheint das Problem nicht zu beheben.
Eine mögliche Lösung für dieses Problem besteht darin, das Flag „--natural“ bei Verwendung des Befehls dumpdata zu verwenden. Auf diese Weise stellt Django Fremdschlüssel in ihrer haltbareren Form dar, die auch als „natürliche Schlüssel“ bezeichnet wird. Beispielsweise wird „Permission.codename“ anstelle von „Permission.id“ und „User.username“ anstelle von „User.id“ verwendet.
Verwendung des Flags „--natural“. sorgt für eine robustere Darstellung von Fremdschlüsseln und kann den Konflikt beim Laden von Fixtures lösen.
Das obige ist der detaillierte Inhalt vonWarum können meine Django-Fixtures aufgrund von Inhaltstypkonflikten in MySQL nicht geladen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!