Django を Heroku にデプロイしてもアプリケーションエラーになるときに見直すべきこと
2023.02.18
デプロイが成功してアプリケーションエラーになる原因:
- 重要なファイルがない
- PostgreSQL などのサーバー設定がない
- manage.py と wsgi.py の設定ミス
- ALLOWED_HOSTS
重要なファイルがない
- Pipfile
- Pipfile.lock
- Procfile
- runtime.txt
- requirements.txt
これらは Django そのものと関係ないが、サーバーにデプロイするときに影響します。この 5 つのファイルは Django を動かすにあたってエラーになりやすい。
PostgreSQL などのサーバー設定がない
PostgreSQL は下のように設定します。
SECURE_SSL_REDIRECT = True
django_heroku.settings(locals())
DATABASES = {
'default': dj_database_url.config(
default='postgres://fktshfuksrhdvnkhc...'
)
}
db_from_env = dj_database_url.config()
DATABASES['default'].update(db_from_env)
postgres://fkt... はデータベースのアドレス。Heroku は最初から PostgreSQL を用意しており、そのアドレスも管理画面に表示されている。
manage.py と wsgi.py
アプリをコピーして使いまわしている場合など、manage.py は意外と見落としやすい。settings の設定はいつも確認します。
ALLOWED_HOSTS
ALLOWED_HOSTS に Heroku のドメインを設定していないとエラーになる。