【发布时间】:2013-09-12 23:30:50
【问题描述】:
我有一个 Django 项目,它使用 South 应用程序来处理架构和数据迁移。在我的一个应用程序中,我有迁移(编号 0004),它负责从 json 文件加载数据夹具:
class Migration(DataMigration):
def forwards(self, orm):
from django.core.management import call_command
call_command("loaddata", "dummy_data.json")
在同一个项目中,我尝试添加“软删除”功能,该功能需要再添加一个文件,定义为:
deleted_at = models.DateTimeField(blank=True, null=True)
基于此更改,我添加了新的迁移,编号为 0009。之后我启动 migrate 命令,这给了我错误:
DatabaseError: Problem installing fixture 'C:/Users/Grzegorz/PycharmProjects/Dummy Project/Dummy\app_subapp\fixtures\dummy_data.json': Could not load app_subapp.DummyData(pk=1): (1054, "Unknown column 'deleted_at' in 'field list'")
这很奇怪,因为在应用迁移 0004 时发生此错误,该迁移 0004 之前工作正常,并且在此步骤中从 South 进程提交 deleted_at 不应该也不存在于我的数据库中。我发现移动在 0009 之后从步骤 0004 加载夹具的迁移解决了问题,但它看起来很脏,不是解决此问题的好方法。
您有什么建议我可以如何解决这个问题并正确处理 South 的迁移和夹具加载?
【问题讨论】:
标签: django django-models django-south django-fixtures