4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Django / heroku】デプロイ後のアプリケーションエラーに対する確認すべき点

Last updated at Posted at 2021-11-03

#はじめに
どうもこんばんは、吉田プログラマーです。
herokuへのデプロイ経験は2回しかありませんが、エラーに対して確認してきた点を述べていきます。

なお、今回は__デプロイ時のエラー__ではなく、__デプロイ後のアプリケーションエラー__について説明します。

#アプリケーションエラー
アプリケーションエラー.png

出ました、憎きアプリケーションエラーの画面ですね。
親の顔よりとまではいかずとも、親戚の顔より見た人は多いんじゃないでしょうか(多分)。
[heroku logs --tail]でログを確認してもいまいちピンと来ませんでしたが、エラーの理由は結構初歩的なミスばかり。。。

遭遇したエラー原因を以下に記していきます。

##①Procfile
ここでミスしてはいけない点は、ちゃんとプロジェクト名を指定出来ているかだと思います。
Djangoで何かしらのアプリケーションを開発する際、最初にこのコマンドを打ちますよね。

django-admin startproject <プロジェクト名>

ここで指定したプロジェクト名は、Procfileの記述の際にも使用します。

web: gunicorn <プロジェクト名>.wsgi

それとProcfileの配置場所にもご注意ください。__プロジェクトフォルダ直下に作成__となります。

##②requirements.txt
このテキストファイルも必ず、__プロジェクトフォルダ直下に作成__します。
あと必要なライブラリをインストールした場合、下記コマンドで更新を忘れないようにしましょう。

requirements.txt
pip freeze > requirements.txt

デプロイ後の「 heroku run python manage.py migrate 」実行時にエラーが出てしまいます。

##③runtime.txt
ちゃんとPythonのバージョンも教えてあげないとですね。こちらも当然、__プロジェクトフォルダ直下に作成__します。
使用しているPythonの現バージョンは以下のコマンドを実行して確認します。

python --version

表示されたバージョンが分かり次第、runtime.txtには以下のようにバージョンを記述していきます。

runtime.txt
python-<pythonバージョン>

##④マイグレーション
上記3ファイルを作成後、今度はマイグレーションもしなければなりません。herokuのpostgreSQLに対してですね。

heroku run python manage.py migrate

##⑤スーパーユーザー
開発環境同様、スーパーユーザーの作成も必須です。
以下のコマンドを打って作成しましょう。

heroku run python manage.py createsuperuser

#おわりに
簡単に述べましたが、他にも沢山の原因があるかもしれません。
いま一度デプロイの方法等を一から確認し、スペルミスがないか、手順に抜け落ちがないか確認した方が良いでしょう。
……と自信満々に言ってますが、こちらも十分に気を付けていかないとですね(汗)

記事に間違い、追記すべき点等がありましたら、コメント欄にご連絡頂けますと幸いです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?