Django migrations: relation does not exist
我的dev服务器上有一个工作站点和数据库,我正试图在一个活动服务器上安装它。我正在执行以下操作:
- Git将存储库从dev服务器克隆到live服务器
- 在Live Server(posgres)上创建空数据库
- 更新Live Server上所有相关数据库等设置的settings.py
- 删除所有迁移文件/文件夹并删除所有*.pyc文件
- python manage.py生成迁移
小精灵
我得到错误:
我似乎无法实现最初的迁移。我找到的唯一解决方案是进入我的
在注释完这些部分之后,我可以进行初始迁移。之后,我可以取消对应用程序的注释,并开始逐个迁移它们,例如:
所以我有一个解决方案,但它远不是理想的。当然,有一种方法可以告诉Django我已经创建了一个全新的空数据库,因此它需要首先进行初始迁移。我正在使用ansible自动设置服务器,因此要求我执行所有这些手动注释/取消注释和多次迁移都是不好的。
更新:
根据评论,我不打算删除迁移。所以我在dev服务器上执行了以下操作来尝试重新创建它们:link。然而,即使我现在有迁移文件,我已经复制到了实时服务器,当我尝试运行它们时,我会得到与上面相同的错误。
我已经阅读了迁移文件,没有看到任何关于创建初始迁移/数据库模式的内容。它只提到创建我的应用程序模型。在应用程序迁移完成之前,我似乎不知道如何进行初始迁移。我需要从头开始重新创建所有迁移文件(包括创建初始的DB模式),以便在服务器上运行它们。
感谢@daniel roseman的评论,我最终解决了这个问题。我在做以下工作:
1 | list(Correlation().get_entries()) |
这所做的是创建一个模型实例(即:相关),并针对该实例调用get_entries()方法。然后我把它包围在list()中。出于某种原因,这阻止了迁移的工作。我删除了不需要的list(),现在一切正常。