2015-04-21 4 views

Antwort

98

Initial-Migrationen an einem Projekt kann manchmal Störungsbehebung werden mit --fake-initial

python manage.py migrate --fake-initial 

Es ist neu in 1.8. In 1.7 war --fake-initial ein impliziter Standard, aber explizit in 1.8.

Aus dem Text & Tabellen:

Die --fake-initial Option kann verwendet werden, Django zu ermöglichen, mit den Namen aller Modelle einer App erste Migration, wenn alle Datenbanktabellen überspringen von allen Operationen in Create dass erstellt Migration existiert bereits. Diese Option ist für den Einsatz beim ersten Ausführen von Migrationen mit einer Datenbank vorgesehen, die bereits Migrationen verwendet hat. Diese Option sucht jedoch nicht nach übereinstimmenden Datenbankschemata, die über die übereinstimmenden Tabellennamen hinausgehen, und ist daher nur dann sicher zu verwenden, wenn Sie sicher sind, dass Ihr vorhandenes Schema dem entspricht, was in Ihrer ursprünglichen Migration aufgezeichnet wurde.

https://docs.djangoproject.com/en/1.8/ref/django-admin/#django-admin-option---fake-initial

+2

Vielen Dank für diese Informationen wie ein Charme! – Thom

+1

Gibt es eine Möglichkeit, einen 'manage.py migrate'-Befehl auszuführen, der sowohl auf vorhandenen als auch auf neuen Datenbanken funktioniert? –

+2

@RobinWinslow Wenn Sie einen Befehl wünschen, der konsistent arbeitet, sollte das --fake-initial Flag immer funktionieren. –