稍后模型更改时 Django 数据迁移问题
Issue with Django data migration when model changes later
假设我有一个如下所示的 Django 模型:
class MyEntity(models.Model):
my_first_attribute = models.CharField(max_length=50)
我创建了一个在 MyEntity 模型中插入一些值的数据迁移。
然后我创建了一个架构迁移,它添加了另一个属性 "my_second_attribute"。
如果我 运行 ./migrate.py 在新数据库上,运行ning 数据迁移失败并且 Django 抱怨 myentity.my_second_attribute 不存在!
有解决办法吗?
确保您的 data migration 函数执行此操作:
Person = apps.get_model("yourappname", "Person")
而不是使用这个:
from yourappname.models import Person
前者将采用先前模式迁移定义的数据库模式和模型(如 Migration.dependencies
中指定)。
后者将使用可能领先于迁移文件已知状态的当前资源。
假设我有一个如下所示的 Django 模型:
class MyEntity(models.Model):
my_first_attribute = models.CharField(max_length=50)
我创建了一个在 MyEntity 模型中插入一些值的数据迁移。
然后我创建了一个架构迁移,它添加了另一个属性 "my_second_attribute"。
如果我 运行 ./migrate.py 在新数据库上,运行ning 数据迁移失败并且 Django 抱怨 myentity.my_second_attribute 不存在!
有解决办法吗?
确保您的 data migration 函数执行此操作:
Person = apps.get_model("yourappname", "Person")
而不是使用这个:
from yourappname.models import Person
前者将采用先前模式迁移定义的数据库模式和模型(如 Migration.dependencies
中指定)。
后者将使用可能领先于迁移文件已知状态的当前资源。