2016-05-13 21 views
0

比方说,我有一个Django的模型,看起来像这样:问题Django的数据迁移时模型改变后

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

我创建在插入myEntity所模型的一些值的数据迁移。

然后我创建一个模式迁移,添加另一个属性“my_second_attribute”。

如果我在新数据库上运行./migrate.py,运行数据迁移失败,Django会抱怨myentity.my_second_attribute不存在!

有没有解决方案呢?

+1

你运行过'./manage.py makemigrations'然后'./manage.py migrate'吗? – trantu

回答

2

确保您data migration功能做到这一点:

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

而不是使用这样的:

from yourappname.models import Person 

前者将承担起以前的架构迁移(S)定义数据库模式和模型(如Migration.dependencies中所述)。

后者将使用当前来源,这些来源可能会远离迁移文件已知的状态。