Vor Django 1.7 habe ich in den Einstellungen ein pro-project fixtures
-Verzeichnis definiert:
und verwende das, um mein initial_data.json
Fixture zu speichern, das die Standard Gruppen speichert, die für das gesamte Projekt notwendig sind. Dies hat für mich gut funktioniert, da ich das Design sauber halten konnte, indem ich projektspezifische Daten von anwendungsspezifischen Daten trennte.
Jetzt mit Django 1.7 sind initial_data
Fixtures veraltet, vorschlagen , Datenmigrationen zusammen mit den Migrationen der App-Schemata zu integrieren ; keine offensichtliche Wahl für globale initiale Daten pro Projekt lassen.
Außerdem werden im neuen Migrationsframework alle Legacy-Anfangsdatenträger vor Ausführen von Migrationen für die kompatiblen Apps (einschließlich der App django.contrib.auth
). Dieses Verhalten führt dazu, dass mein Fixture, das Standardgruppen enthält, die Installation fehlschlägt , da die Tabelle auth_group
noch nicht in der DB vorhanden ist.
Irgendwelche Vorschläge, wie Fixtures (elegant) nach allen Migrationen oder zumindest nach der Migration der Auth-App ausgeführt werden? Oder irgendwelche anderen Ideen, um dieses Problem zu lösen? Ich finde Fixtures eine großartige Möglichkeit, um erste Daten zu liefern und möchte sie auf einfache und saubere Weise für die automatische Installation deklarieren. Das neue RunPython ist einfach zu umständlich und ich halte es für die meisten Zwecke für einen Overkill. und es scheint nur für pro-App-Migrationen verfügbar zu sein.
Tags und Links django django-migrations django-fixtures django-1.7