2016-05-13 9 views
0

Lassen Sie uns sagen, ich habe ein Django-Modell, das wie folgt aussieht:Problem mit Migration Django Daten bei Modelländerungen später

class MyEntity(models.Model): 
    my_first_attribute = models.CharField(max_length=50) 

ich eine Datenmigration, die einige Werte in MyEntity Modell einfügt.

Dann erstelle ich eine Schema-Migration, die ein weiteres Attribut "my_second_attribute" hinzufügt.

Wenn ich ./migrate.py in einer neuen Datenbank ausführen, schlägt die Datenmigration fehl und Django beschwert sich, dass myentity.my_second_attribute nicht existiert!

Gibt es dafür eine Lösung?

+1

Haben Sie './manage.py makemigrations' und dann' ./manage.py migrate' ausgeführt? – trantu

Antwort

2

Seien Sie sicher, dass Ihre data migration Funktion tut dies:

Person = apps.get_model("yourappname", "Person") 

Anstatt dies mit:

from yourappname.models import Person 

Die früheren Datenbankschema übernehmen wird und Modelle wie durch früheres Schema Migration definiert (s) (wie in Migration.dependencies spezifiziert).

Letztere verwendet Stromquellen, die dem Zustand der Migrationsdateien weit voraus sein können.