python - Django 迁移 : relation does not exist

标签 python django postgresql

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

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

我收到错误:django.db.utils.ProgrammingError:关系“myapp_mytable”不存在

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

注释掉这些部分后,我可以进行初始迁移。之后,我可以取消注释我的应用程序并开始逐一迁移它们,即: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/

相关文章:

Python 3.7 : Applying the proxy to all parts of pip installation, 维护代理变量失败

javascript - (CSRF token 丢失或不正确。)在 Django 中使用 AJAX

ruby-on-rails - 我如何构造此 Rails/PostgreSQL 查询以根据模型子项的属性返回模型实例?

python - Cron 作业运行成功但没有任何反应

python 多项式拟合和导数

python - 上传图片 python tkinter

python - 过滤器无效 : 'revision'

python - django - 模板中的列表列表

ruby-on-rails - 在 ID 存在时获取 "Unknown primary key for table"

python - 如何使用 sqlalchemy-migrate 将列类型从字符变化更改为整数