【发布时间】:2016-06-14 23:52:43
【问题描述】:
运行 Django 1.8.9。
我刚刚压缩了 3 个应用程序的迁移并进行了部署。当./manage.py migrate 运行时,我得到了这个:
django.db.migrations.graph.NodeNotFoundError: Migration app2.0001_squashed_0019 dependencies reference nonexistent parent node (u'app1', u'0001_squashed_0028')
app1.0001_squashed_0028 存在于磁盘上,迁移被替换。 Django 迁移系统应该拥有向前迁移所需的所有信息。
我能够通过以下方式解决该问题:
- 将依赖于
app1.0001_squashed_0028的 2 个新压缩迁移重命名为*.bak, - 运行迁移,
- 然后重命名
*.bak文件, - 并重新运行迁移。
迁移在本地和暂存中运行良好,所以我猜测发生这种情况的原因是因为生产尚未与预先压缩的迁移保持同步。
我发现了几个与 squashing 相关的问题单,但我不确定它们中的任何一个是针对同一个错误的。任何人都知道这是否是一个已知问题?我是不是做错了什么/有没有更好的方法来防止这种情况发生?
【问题讨论】:
标签: python django database-migration