我有一个 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 的迁移和夹具加载?