尝试连续编写多个迁移时,我在 Django 1.7 中遇到了问题。这是迁移的基本设置:
- 为应用创建模型的初始架构迁移
- 在包含一次性默认数据的特定夹具上调用 loaddata 的数据迁移
- 向其中一个模型添加了一个新的可选字段,因此添加该字段是一个架构迁移
如果我生成第一个迁移,运行它,生成第二个,运行它,然后添加新字段,生成第三个迁移,然后运行它,一切都很好。但是,如果我的数据库在迁移 #1 上,然后我从源存储库中下拉,则迁移 2 将失败,因为它在调用 loaddata 时使用来自 models.py 的模型,而不是在迁移时使用模型。然后它会产生以下错误:
"Unknown column '[field]' in 'field list'"
在本例中,[field] 是我为迁移 #3 添加的新字段。该错误是有道理的,因为我的数据库还没有新字段,但 loaddata 期望它在那里(即使夹具没有引用新字段),但是有没有办法让 loaddata 在迁移时间而不是models.py中的当前状态?或者有没有其他方法可以解决这个问题?
谢谢。