Ich verwende django 1.7 für meine Anwendung. Ich stieß auf mehrere Probleme mit der Migration. Jedesmal, wenn ich versuche, einen Feldnamen in Modellen zu ändern, der ein Fremdschlüssel ist, bricht er ab. Die einzige Lösung wäre, zur Datenbank zu gehen und sie zu reparieren, und sie führen migrate
gefolgt von syncdb
aus.
Wie löse ich diese, wenn meine Anwendung größer wird, und ich werde bald mehr Zeit damit verbringen, die Datenbankfehler zu beheben, wenn sich mein Schema ändert.
South wird nicht für django 1.7 unterstützt und hat eine eigene Migration, die nicht mächtig ist (ich bin mir nicht sicher, nur ein Anfänger)
Der Migrationsrahmen in Django 1.7 basiert auf Süd. Wenn Sie ein Upgrade durchführen, sollten Sie Folgendes lesen:
aus der Dokumentation:
Aktualisieren von Süden Wenn Sie bereits Migrationen haben erstellt mit South, dann den Upgrade-Prozess zu verwenden django.db.migrations ist ziemlich einfach:
Stellen Sie sicher, dass alle Installationen mit ihren Migrationen auf dem neuesten Stand sind. Löschen 'Süden' von INSTALLED_APPS. Löschen Sie alle Ihre (nummerierten) Migration Dateien, aber nicht das Verzeichnis oder init .py - stellen Sie sicher, dass Sie das entfernen .pyc Dateien auch. Führen Sie python manage.py Makemigrationen aus. Django sollte sehen die leeren Migrationsverzeichnisse und führen neue Migrationen im neues Format. Führen Sie python manage.py migrieren aus. Django wird das sehen Tabellen für die anfänglichen Migrationen sind bereits vorhanden und markieren sie als angewendet, ohne sie auszuführen. Das ist es! Die einzige Komplikation ist, wenn Sie haben eine zirkuläre Abhängigkeitsschleife von Fremdschlüsseln; in diesem Fall, makemigrations kann mehr als eine anfängliche Migration machen, und Sie werden Sie müssen alle als angewendet markieren mit:
python manage.py migrate --f \ u00e4hlen Sie hieraus
Tags und Links django django-south