Django Sites Framework: Anfangsspeicherort der Datenmigration
Vor Django 1.7, wenn das @ verwendet wiDjango Sites Framework man könnte / sollte die Anfangsdaten mit @ definierInitial Fixtures.
myproject / fixtures / initial_data.json[
{
"pk": 1,
"model": "sites.site",
"fields": {
"domain": "domain1",
"name": "name1"
}
},
{
"pk": 2,
"model": "sites.site",
"fields": {
"domain": "domain2",
"name": "name2"
}
},
{
"pk": 3,
"model": "sites.site",
"fields": {
"domain": "domain3",
"name": "name3"
}
}
]
Da es sich um eine globale Projekteinstellung handelt, habe ich dem Projektstamm einen Ordner "fixtures" hinzugefügt und ihn zu FIXTURE_DIRS hinzugefügt.
# Used to search fixture files directories.
# Fixture files are files that provide initial data to be
# inserted in the database. (>python manage.py loaddata)
FIXTURE_DIRS = [
os.path.join(PROJECT_ROOT, "fixtures"),
]
Jetzt benutze ich Django 1.7, und es wird empfohlen, @ zu verwend migrations. Zitiert Django Dokumentation:
Um den richtigen Namen und die richtige Domäne für Ihr Projekt festzulegen, können Sie eine Datenmigration verwenden.
Das Problem istMigrationen sind app-spezifisch:
python manage.py makemigrations - Leer deinAppname
Was ist der empfohlene Ansatz, um die Site-Informationen mithilfe einer Datenmigration zu meinem Projekt hinzuzufügen? Wo soll diese Migration leben?
Laufenpython manage.py makemigrations --empty sites
erstellt die Migration im App-Ordner eines Drittanbieters, daher möchten wir das nicht.
Sollte es nicht möglich sein, ein MIGRATION_DIRS als FIXTURE_DIRS für die initial_data zu definieren?
Ich fand MIGRATION_MODULES in der Einstellungsdokumentation, aber das Problem bleibt bestehen, es ist app-spezifisch.