質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.77%

DjangoをHerokuにデプロイしたらServer Error (500)

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 769

score 185

概況

DjangoでWebアプリを作成し、Herokuにデプロイしました。

migrateは済んでおり、すべてOKでした。

このアプリではユーザーログインを必須としており、既にスーパーユーザを作成済みなのでそれでログオンしようとしました。

ログイン画面は、正常に表示されたのですが、
ログイン後の画面に遷移(トップページ)すると、Server Error (500)になってしまいます。
その後、再度ログイン画面を表示しようとしても、先ほどは正常に表示されたのに今度はServer Error (500)となってしまいます。

なお、ローカル環境では正常に動作しています。

原因と対策を教えていただけますと幸いです。

ログ

2019-07-09T07:16:58.970923+00:00 heroku[web.1]: State changed from starting to up
2019-07-09T07:17:00.535789+00:00 heroku[router]: at=info method=GET path="/" host=XXXXX.herokuapp.com request_id=3b68ca5b-dd10-4e6c-a92a-bb21f9057493 fwd="103.5.142.126" dyno=web.1 connect=0ms service=229ms status=500 bytes=234 protocol=https
2019-07-09T07:17:00.534778+00:00 app[web.1]: 10.139.108.80 - - [09/Jul/2019:16:17:00 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
2019-07-09T07:17:00.888056+00:00 heroku[router]: at=info method=GET path="/" host=XXXXX.herokuapp.com request_id=7d1b3716-97dc-4bf1-9f8d-d47d33efede3 fwd="103.5.142.126" dyno=web.1 connect=1ms service=41ms status=500 bytes=234 protocol=https
2019-07-09T07:17:00.886723+00:00 app[web.1]: 10.170.186.233 - - [09/Jul/2019:16:17:00 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
2019-07-09T07:17:01.224556+00:00 heroku[router]: at=info method=GET path="/login?next=/" host=XXXXX.herokuapp.com request_id=879a3fc9-54b9-41d8-999f-d22706b9b920 fwd="103.5.142.126" dyno=web.1 connect=0ms service=69ms status=500 bytes=401 protocol=https
2019-07-09T07:17:01.223419+00:00 app[web.1]: 10.139.108.80 - - [09/Jul/2019:16:17:01 +0900] "GET /login?next=/ HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
2019-07-09T07:17:03.333708+00:00 heroku[router]: at=info method=GET path="/login?next=/" host=XXXXX.herokuapp.com request_id=5369d8c6-70ba-4dce-a063-b699352a60ca fwd="103.5.142.126" dyno=web.1 connect=0ms service=51ms status=500 bytes=401 protocol=https
2019-07-09T07:17:03.332393+00:00 app[web.1]: 10.139.108.80 - - [09/Jul/2019:16:17:03 +0900] "GET /login?next=/ HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
2019-07-09T07:18:07.330361+00:00 heroku[router]: at=info method=GET path="/" host=XXXXX.herokuapp.com request_id=d56f497d-9eca-40c8-8388-0e5df0f7036b fwd="103.5.142.126" dyno=web.1 connect=0ms service=45ms status=500 bytes=234 protocol=https
2019-07-09T07:18:07.328834+00:00 app[web.1]: 10.65.83.42 - - [09/Jul/2019:16:18:07 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
2019-07-09T07:26:45.204797+00:00 heroku[router]: at=info method=GET path="/" host=XXXXX.herokuapp.com request_id=3e97020d-8e3a-4440-a237-7e1bb90820c5 fwd="103.5.142.126" dyno=web.1 connect=0ms service=50ms status=500 bytes=234 protocol=https
2019-07-09T07:26:45.203223+00:00 app[web.1]: 10.29.87.94 - - [09/Jul/2019:16:26:45 +0900] "GET / HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"

コード

(settings.py)
MIDDLEWARE = [
    ///(省略)///
    'whitenoise.middleware.WhiteNoiseMiddleware',
    ///(省略)///
]
    ///(省略)///
ROOT_URLCONF = '【プロジェクト名】.urls'

    ///(省略)///
WSGI_APPLICATION = '【プロジェクト名】.wsgi.application'

    ///(省略)///
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, '【アプリケーション名】/static'),
)
    ///(省略)///
ALLOWED_HOSTS = ['*']
    ///(省略)///
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

DEBUG = False
    ///(省略)///
(wsgi.py)
import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', '【プロジェクト名】.settings')

application = get_wsgi_application()
web: gunicorn 【プロジェクト名】.wsgi
(requirements.txt)
bootstrap4==0.1.0
certifi==2019.3.9
chardet==3.0.4
dj-database-url==0.5.0
Django==2.2
django-bootstrap==0.2.4
django-bootstrap-form==3.4
django-bootstrap4==0.0.8
django-cleanup==3.2.0
django-forms-bootstrap==3.1.0
django-pure-pagination==0.3.0
django-widget-tweaks==1.4.5
django-widgets-improved==1.5.0
gunicorn==19.9.0
idna==2.8
numpy==1.16.2
oauthlib==3.0.1
Pillow==5.4.1
psycopg2-binary==2.8.2
python-dateutil==2.8.0
pytz==2018.9
requests==2.21.0
requests-oauthlib==1.2.0
reverse==0.1.0
ulid-py==0.0.9
unicodecsv==0.14.1
urllib3==1.24.1
whitenoise==4.1.2
(runtime.txt)
python-3.7.3
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • nskydiving

    2019/07/09 16:08

    「heroku logs」でログが確認できますが、何かエラーログは出ていないでしょうか?

    キャンセル

  • ak_suzuki

    2019/07/09 16:19

    ログのところに記述したのが、`heroku logs --tails`で取得したものになります。最後の3つを貼り付けました。

    キャンセル

  • nskydiving

    2019/07/09 16:21

    このログだけで判断するのは難しいので、ログ全体を貼り付けていただいた方が良いかと思います。

    キャンセル

  • ak_suzuki

    2019/07/09 16:30

    ご指摘ありがとうございます。
    `heroku open`からのログを記述いたしました。

    キャンセル

回答 1

check解決した方法

0

自己解決いたしました。

settings.pyで、Debug=TRUEとしてエラーを見てみたところ、データベース上の依存関係の不整合が原因でした。
ローカルでは発生しない現象だったので、想定外のエラーでした。
ローカル=sqlite3
本番=Postgresql
というDBの違いによるものかと思います。

ULIDがPostgreSQLでは使えないのかとも疑いましたが、そんなことはありませんでした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.77%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る