Obwohl die Tabelle "myapp_tabellenname" bereits vorhanden ist, wird nach der Migration von ./manage.py myapp --fake kein Fehler mehr ausgelöst. Der DatabaseError zeigt keine solche Spalte an: myapp_mymodel.added_field.
Habe genau das gleiche Problem!
1. Überprüfen Sie zunächst die Migrationsnummer, die dies verursacht. Nehmen wir an, es ist: 0010.
2.Sie müssen:
./manage.py schemamigration myapp --add-field MyModel.added_field
./manage.py migrate myapp
Wenn mehr als ein Feld fehlt, müssen Sie es für jedes Feld wiederholen.
3. Jetzt landen Sie mit einer Reihe neuer Migrationen. Entfernen Sie deren Dateien aus myapp / migrations (0011 und weiter, wenn Sie mehrere Felder hinzufügen müssen).
4. Führen Sie dies aus:
./manage.py migrate myapp 0010
Versuchen Sie nun, ./manage.py myapp zu migrieren
Wenn es nicht fehlschlägt, sind Sie bereit. Überprüfen Sie einfach, ob Felder fehlen.
BEARBEITEN:
Dieses Problem kann auch auftreten, wenn Sie über eine Produktionsdatenbank verfügen, für die Sie South installieren, und die erste anfängliche Migration, die in einer anderen Umgebung erstellt wurde, das dupliziert, was Sie bereits in Ihrer Datenbank haben. Die Lösung ist hier viel einfacher:
Fake die erste Migration:
./manage migrate myapp 0001 --fake
Rollen Sie mit dem Rest der Migrationen:
./manage migriere myapp