模型稍后更改时,Django数据迁移问题

时间:2016-05-13 14:14:02

标签: django django-models django-migrations

让我们说我有一个看起来像这样的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 个答案:

答案 0 :(得分:3)

请确保您的data migration功能执行此操作:

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

而不是使用它:

from yourappname.models import Person

前者将假设由先前的模式迁移定义的数据库模式和模型(在Migration.dependencies中指定)。

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