gpt4 book ai didi

python - Django 迁移 : relation does not exist

转载 作者:行者123 更新时间:2023-11-29 12:03:22 25 4
gpt4 key购买 nike

我的开发服务器上有一个工作站点和数据库,我正尝试在实时服务器上进行设置。我正在做以下事情:

  • Git 将存储库从开发服务器克隆到实时服务器
  • 在实时服务器 (Posgres) 上创建空数据库
  • 更新实时服务器上的 settings.py 以获取所有相关数据库等设置
  • 删除所有迁移文件/文件夹并删除所有*.pyc文件
  • python manage.py makemigrations

我收到错误:django.db.utils.ProgrammingError: relation "myapp_mytable"does not exist

我似乎无法进行初始迁移。我找到的唯一解决方案是进入我的 settings.py 文件并在 INSTALLED_APPS 中注释掉我的所有应用程序并进入我的主 urls.py 文件并注释掉我所有的 url。

注释掉这些部分后,我就可以进行初始迁移了。之后我可以取消注释我的应用程序并开始一个一个地迁移它们,即:python manage.py makemigrations appname 然后是 python manage.py migrate

所以我有一个解决方法,但它远非理想。当然有办法告诉 django 我已经创建了一个全新的空数据库,所以它需要先进行初始迁移。我正在使用 Ansible 自动化服务器设置,因此要求我执行所有这些手动注释/取消注释和多次迁移并不好。

更新:

根据评论,我不应该删除迁移。所以我在开发服务器上做了以下尝试并重新创建它们:link .然而,即使我现在有已复制到实时服务器的迁移文件,当我尝试运行它们时,我也会遇到与上述相同的错误。

我已经通读了迁移文件,但没有看到任何提到创建初始迁移/数据库架构的内容。它只提到创建我的应用程序模型。在完成应用程序迁移之前,我似乎无法弄清楚如何进行初始迁移。我需要以某种方式从头开始重新创建所有迁移文件(包括创建初始数据库模式),以便它们可以在服务器上运行。

最佳答案

感谢@Daniel Roseman 的评论,我最终解决了这个问题。我正在做以下事情:

list(Correlation().get_entries())

它所做的是创建一个模型实例(即:关联)并针对它调用 get_entries() 方法。然后我把它包围在 list() 中。出于某种原因,这阻止了迁移工作。我删除了无论如何都不需要的 list(),现在一切正常。

关于python - Django 迁移 : relation does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com