过去,我成功使用概述为here的django-heroku软件包托管了一个网站,但是现在当我尝试仅运行Django项目的基本外壳作为新项目的开始时,遇到以下错误消息:
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上都尝试过。
答案 0 :(得分:0)
我刚刚解决了这个问题,我发现必须通过heroku cli进行一些操作,尤其是在涉及数据库时。
首先,您要确保您的requirements.txt是最新的,以便可以创建模型中依赖于任何第三方应用程序的任何字段(例如models.ImageField取决于枕头)。< / p>
运行以下命令,并确保在提交更改时,它会检测您的迁移中的更改(如果进行了更改):
python manage.py makemigrations
git add .
git commit -m "message"
git push heroku master
heroku run python manage.py migrate
heroku run python manage.py createsuperuser
最后两行代码负责解决您的问题。我的猜测是,heroku默认情况下不会跟踪对db.sqlite所做的更改(如.gitignore中所定义),因此它不会运行迁移行,因此您需要手动执行此操作,因此在部署它时不会这样做。 t检测您之后创建的表。希望这对您有帮助。