Django压扁的迁移:NodeNotFoundE

2024-04-29 02:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

运行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迁移系统应该已经拥有向前迁移所需的所有信息。在

我可以通过以下方式解决这个问题:

  1. 将依赖于app1.0001_squashed_0028的2个新压缩迁移重命名为*.bak
  2. 正在运行迁移
  3. 然后重新命名*.bak文件
  4. 以及重新运行迁移。在

迁移在本地和阶段中都能很好地工作,所以我猜发生这种情况的原因是因为生产还没有跟上预先压缩的迁移。在

我发现了几张与挤压相关的问题罚单,但我不确定其中是否有针对同一个bug的问题。有人知道这是不是一个已知的问题?我做错什么了吗/有没有更好的方法来防止这种情况发生?在


Tags: djangopy应用程序dbmanagemigrations部署情况
1条回答
网友
1楼 · 发布于 2024-04-29 02:19:21

您对错误消息表示困惑,因为:

app1.0001_squashed_0028 was present on disk though, as were the migrations being replaced. The Django migration system should have had all the information it needed to migrate forwards.

不过,您是否看到磁盘上的文件还不确定。要了解Django对该项目了解哪些迁移,请使用management command ^{}。在

如果您期望的迁移甚至没有列出,那么这就是Django声称找不到迁移的原因。在

相关问题 更多 >