Приложение Django Postgres отлично работает на localhost, но не загружается на Heroku после развертывания с GitHub (код ошибки H10, статус 503).
У меня есть приложение Django, использующее PostgreSQL, которое отлично работает на localhost, но при развертывании на 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-xxxxxx-xxxxxxxxxxx fwd="171.xxx.xxx.xxx" dyno= connect= service= status=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
Если вы внимательно посмотрите, на самом деле есть два разных типа тире, которые вызывают опцию log-file
для команды gunicorn
в моем Procfile. Это и было проблемой! Урок усвоен: не копируйте и не вставляйте код из Интернета так свободно!