首页 > 解决方案 > Django Postgres 应用程序在 localhost 上运行良好,但在从 GitHub 部署后无法在 Heroku 上加载(错误代码 H10,状态 503)

问题描述

我有一个使用 PostgreSQL 的 Django 应用程序,它可以在本地主机上完美运行,但在部署到 Heroku 时失败。我通过 GitHub 部署。虽然我可以成功部署 Django 应用程序,但我无法访问任何 url。在此过程中,我收到了各种错误。当前的状态是 HTTP 状态 503,尽管我已经获得 500 很长一段时间了。我尝试过重置我的 Heroku PostgreSQL 数据库,删除并重新创建我的数据库,运行heroku run python manage.py collectstatic部署后,在部署后手动执行迁移(也在release: python manage.py migrate --noinput我的 Procfile 中使用)heroku reset,以及重置我的迁移和重新部署,但无济于事。

有一次,我有一半的管理员在工作(这是在我最终发现我的自定义模型没有在 heroku 上迁移之前,因为我没有在部署中包含迁移文件。)现在我终于有了Django 应用程序安装在 heroku 上,我什至无法加载管理员,更不用说其他任何东西了:

2021-08-26T07:21:03.486150+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/admin/" host=XXXXXXX.herokuapp.com request_id=xxxxxxxx -xxxx-xxxx-xxxx-xxxxxxxxxxxx fwd="171.xxx.xxx.xxx" dyno=连接=服务=状态=503字节=协议=http

该网页显示以下错误消息:

应用程序错误:应用程序发生错误,无法提供您的页面。如果您是应用程序所有者,请查看您的日志以获取详细信息。

我在过去一周遇到的各种错误消息有很多问题/答案,但似乎无法解决我的问题。还有什么想法吗?我应该尝试删除我的heroku应用程序并重新开始吗?

标签: djangopostgresqlgithubheroku

解决方案


答案是……在您尝试加载网页之前查看您的日志。这是我这样做时最终看到的:

2021-08-26T10:19:21.089432+00:00 heroku[web.1]: State changed from crashed to starting
2021-08-26T10:19:31.782829+00:00 app[web.1]: usage: gunicorn [OPTIONS] [APP_MODULE]
2021-08-26T10:19:31.782950+00:00 app[web.1]: gunicorn: error: unrecognized arguments: —-log-file -
2021-08-26T10:19:31.838962+00:00 heroku[web.1]: Process exited with status 2
2021-08-26T10:19:31.931500+00:00 heroku[web.1]: State changed from starting to crashed

如果你仔细看,实际上有两种不同类型的破折号调用我的 Procfilelog-file中的命令选项。gunicorn这就是问题所在!经验教训:不要如此随意地从网络上复制和粘贴代码!


推荐阅读