Django压缩迁移:NodeNotFoundError

时间:2016-03-02 08:29:00

标签: python django database-migration

运行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. 并重新运行迁移。
  5. 迁移在本地和分段中运行良好,因此我猜测发生这种情况的原因是因为生产还没有与预先迁移的迁移进行更新。

    我找到了几张与挤压相关的问题门票,但我不确定是否有任何针对此问题的门票。有谁知道这是一个已知的问题?我做错了什么/是否有更好的方法来阻止这种情况?

1 个答案:

答案 0 :(得分:0)

您对错误消息表示混淆,因为:

  然而,

app1.0001_squashed_0028存在于磁盘上,正在替换的迁移也是如此。 Django迁移系统应该具有向前迁移所需的所有信息。

但是,你是否看到磁盘上的文件并不是确定的。要了解Django对项目的了解,请使用management command showmigrations

如果您希望迁移的位置甚至没有列出,那么这就是为什么Django声称没有找到迁移的答案。