django - 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应用程序并重新开始吗?
解决方案
答案是……在您尝试加载网页之前查看您的日志。这是我这样做时最终看到的:
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
这就是问题所在!经验教训:不要如此随意地从网络上复制和粘贴代码!
推荐阅读
- python - 在 OpenCV-python 和 mac 中设置fourcc 不起作用
- java - 有人可以解释“实体映射中的重复列”吗?
- python - 通过条码扫描触发回调函数
- apache-spark-sql - 如何从 SparkSQL 中的双嵌套映射中提取值?
- sqlite - SQL Lite 最大值与其他值
- algorithm - 这个快速排序实现的时间复杂度是 O(n log n) 的最坏情况吗?
- linux - 生成一个 .tab 文件,其中文件名和路径由制表符分隔
- javascript - 无法在 react-native 应用程序中实现本地 svg 图像
- docker - 有没有办法在 TiDB docker-compose 文件中设置指定的默认用户名和密码?
- python - 连通分量的 Numpy 矢量化标记