Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Heroku上部署时,管理站点条目出现Django错误_Python_Django_Heroku - Fatal编程技术网

Python 在Heroku上部署时,管理站点条目出现Django错误

Python 在Heroku上部署时,管理站点条目出现Django错误,python,django,heroku,Python,Django,Heroku,过去,我使用django heroku软件包成功地托管了一个网站,但现在,当我尝试运行django项目的基本shell作为新项目的开始时,我遇到了以下错误消息: ProgrammingError at /admin/login/ relation "auth_user" does not exist LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "auth_user...

过去,我使用django heroku软件包成功地托管了一个网站,但现在,当我尝试运行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 cli执行一些操作,特别是在涉及数据库时

首先,您希望确保您的requirements.txt是最新的,以便可以创建模型中依赖于任何第三方应用程序的任何字段(例如models.ImageField取决于枕头)

运行以下操作,并确保在提交更改时,它检测到迁移中的更改(如果有):

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中所定义)所做的更改,因此它不会运行迁移行,因此您需要手动执行迁移,以便在部署时不会检测到随后创建的表。希望这对您有所帮助。

“当我在本地运行此程序时,它运行良好,所以我一定忘了在Heroku上的数据库上设置一些内容。”-是的,可能就是这样。你在Heroku上运行迁移了吗?(请注意,您不应该在Heroku上运行
makemigrations
。这会创建新的迁移,并且只有在您打算更改数据库时才应该在开发中完成。这将生成需要提交并推送到Heroku的迁移文件。但您应该运行
migrate
,它会针对您的数据库运行迁移。)太棒了,谢谢,这是我的问题,我试着运行了迁移,这次成功了。