将一个新应用程序部署到Heroku应用程序,该应用程序在myapp.herokuapp.com上正常运行,但如果我尝试访问myapp.herokuapp.com/admin上的管理员后端,则会引发500服务器错误
INSTALLED_APPS = (
...
'django.contrib.admin',
'gunicorn',
'storages',
# 'django.contrib.admindocs',
)
以下是日志摘录:
2013-07-10T17:35:28.893320+00:00 heroku[web.1]: Starting process with command `python manage.py run_gunicorn -b 0.0.0.0:27294 -w 3 --log-level info`
2013-07-10T17:35:32.298226+00:00 app[web.1]: 2013-07-10 13:35:32 [2] [INFO] Starting gunicorn 0.17.4
2013-07-10T17:35:32.299005+00:00 app[web.1]: 2013-07-10 13:35:32 [2] [INFO] Using worker: sync
2013-07-10T17:35:32.298932+00:00 app[web.1]: 2013-07-10 13:35:32 [2] [INFO] Listening at: http://0.0.0.0:27294 (2)
2013-07-10T17:35:32.312781+00:00 app[web.1]: 2013-07-10 13:35:32 [11] [INFO] Booting worker with pid: 11
2013-07-10T17:35:32.388874+00:00 app[web.1]: 2013-07-10 13:35:32 [12] [INFO] Booting worker with pid: 12
2013-07-10T17:35:32.495370+00:00 heroku[web.1]: State changed from starting to up
2013-07-10T17:35:32.524196+00:00 app[web.1]: 2013-07-10 13:35:32 [13] [INFO] Booting worker with pid: 13
2013-07-10T17:35:59.929850+00:00 heroku[router]: at=info method=GET path=/ host=myapp.herokuapp.com fwd="64.119.130.116" dyno=web.1 connect=0ms service=190ms status=200 bytes=12220
2013-07-10T17:36:04.363323+00:00 heroku[router]: at=info method=GET path=/admin host=myapp.herokuapp.com fwd="64.119.130.116" dyno=web.1 connect=0ms service=4ms status=301 bytes=5
2013-07-10T17:36:04.872523+00:00 heroku[router]: at=info method=GET path=/admin/ host=myapp.herokuapp.com fwd="64.119.130.116" dyno=web.1 connect=0ms service=481ms status=500 bytes=38
哪些设置会导致应用正常运行,但会在/ admin上抛出500错误?我可能会忽视或遗失什么?感谢。
答案 0 :(得分:4)
感谢Magnus的推荐,我在我的项目中添加了sentry,并确定了一个postgres DatabaseError:由于我没有在heroku上成功迁移的项目应用程序的关系问题。
修复只是假装并完成剩余的迁移。
heroku run python manage.py migrate app 0016 --fake
heroku run python manage.py migrate
答案 1 :(得分:3)
您可以添加免费的getsentry插件,并在生产中的DEBUG=False
中接收剩余的异常追溯。
您还可以设置错误的普通电子邮件通知作为管理员电子邮件。
如果没有任何关于错误详情的信息,很难给你建议。