【问题标题】:Issue with Django data migration when model changes later稍后更改模型时出现 Django 数据迁移问题
【发布时间】:2016-05-13 14:14:01
【问题描述】:

假设我有一个如下所示的 Django 模型:

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

我创建了一个在 MyEntity 模型中插入一些值的数据迁移。

然后我创建一个添加另一个属性“my_second_attribute”的架构迁移。

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

有解决办法吗?

【问题讨论】:

  • 你运行./manage.py makemigrations然后./manage.py migrate

标签: django django-models django-migrations


【解决方案1】:

确保您的 data migration 函数执行此操作:

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

而不是使用这个:

from yourappname.models import Person

前者将假定数据库架构和模型由先前架构迁移定义(如Migration.dependencies 中指定)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 2016-06-14
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多