Heroku上的Django - / relation“...”中的ProgrammingError不存在

时间:2018-01-03 18:33:46

标签: django heroku

我收到this错误。我知道您通常会收到此错误,因为数据库未正确迁移。

当我运行heroku local web时,当我转到localhost:5000时网站正常工作。

但是,在我使用git push heroku master将应用部署到heroku后,错误就出现了。

换句话说,它适用于我的本地环境。但是在部署到heroku之后它不起作用。

我已将heroku-Postgres作为插件安装在heroku中。

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:2)

在bash heroku中执行迁移和makemigrations。在本地项目文件夹中打开终端并提供以下命令:

heroku run bash
~$  ./manage.py makemigrations
~$  ./manage.py migrate
~$  exit

答案 1 :(得分:0)

在更改模型并将此更改部署到heroku之后,我遇到了相同的错误。

我设法解决此问题的唯一方法是执行以下操作:

  • 在heroku中重置数据库
  • 从本地已损坏应用程序的迁移文件夹中删除迁移文件(但保留目录和__init__.py文件)
  • 运行python manage.py makemigrationspython manage.py migrate。这将使用干净的迁移文件重新填充迁移文件夹。
  • 将更改推送到主目录(确保.gitignore文件中没有迁移目录。
  • 将更改部署到heroku
  • 运行heroku shell heroku run bash
  • 运行python manage.py migrate

之所以能够这样做,是因为我的表中没有太多数据,但是如果我的表中有更多数据,我会尽量避免重置数据库。