環境 基本 実践 モデル アップロード デプロイ

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 のドメインを設定していないとエラーになる。