【发布时间】:2019-01-13 22:01:05
【问题描述】:
过去我曾成功地使用 django-heroku 包在 here 上托管了一个网站,但现在当我尝试运行一个 Django 项目的基本 shell 作为一个新项目的开始时,我受到了打击以下错误信息:
ProgrammingError at /admin/login/
relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
^
Request Method: POST
Request URL: https://hockamer2018.herokuapp.com/admin/login/?next=/admin/
Django Version: 2.1
Exception Type: ProgrammingError
Exception Value:
relation "auth_user" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...
^
Exception Location: /app/.heroku/python/lib/python3.6/site-
packages/django/db/backends/utils.py in _execute, line 85
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.6.6
Python Path:
['/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python36.zip',
'/app/.heroku/python/lib/python3.6',
'/app/.heroku/python/lib/python3.6/lib-dynload',
'/app/.heroku/python/lib/python3.6/site-packages']
当我在本地运行它时它运行良好,所以我一定忘记在 Heroku 上的数据库上设置一些东西。我已经彻底研究了这个问题,所有的修复似乎都在运行 python manage.py makemigrations python manage.py 迁移 但我通过 heroku 远程 ssh 和“heroku run”命令都无济于事。
我正在运行一个全新的 Django 安装,我所做的只是将两个 django-heroku 行添加到 settings.py。我在 django-2.0.8 和 2.1 上都试过这个。
【问题讨论】:
-
“当我在本地运行时它运行良好,所以我一定忘记在 Heroku 上的数据库上设置一些东西了。”——是的,这可能就是发生了什么。您是否在 Heroku 上运行过迁移? (请注意,您不应该在 Heroku 上运行
makemigrations。这会创建 新 迁移,并且只应在开发中完成,当您打算更改数据库时。这将生成需要提交并推送到 Heroku 的迁移文件。但是您应该运行migrate,它会针对您的数据库运行迁移。) -
太棒了,谢谢,这是我的问题,我尝试运行只是迁移,这次成功了。