Subscribed unsubscribe Subscribe Subscribe

備忘録 Heroku に Django を iMac でデプロイして引っかかったところとか

公式の Getting Started with Django on Heroku とか Heroku で Django 動かす方法 を見ればなんとかなるんだけど、それでも個人的に幾つか詰まったりしたところがあったので、備忘録がてらに。しかし、出るわ出るわ 500 Internal Server Error(CGIスクリプトなどでエラーが出た)で本当に泣かされました 。
 

① Procfile

Procfile を作成、記述する作業があります。ここには、自分のプロジェクト名を書く必要がありました。ファイル名は Procfile で拡張子は無。

web: gunicorn hellodjango.wsgi --log-file -
              ^^^^^^^^^^^ ここを自分のプロジェクト名に書き換える。
                          my_project_name.wsgi みたいな。

 

② Settings.py

settings.py を書き換える箇所があるんですが、下のように書き換えてエラーで怒られました。

# 下の記述を全部コメントアウト
# DATABASES = { "default: ...
# ...

# 新規に下記1行を追加。
DATABASES['default'] =  dj_database_url.config()

 

しかし、これでは DATABASES が定義されていないとエラーで返されますので、次のように書き換え。

DATABASES = {}
DATABASES['default'] =  dj_database_url.config()

heroku logs -t でログを確認すると ImportError: No module named DATABASES が発生していて手がかりを掴む(きっかけになったサイト)。
 

Django error in Heroku: “Please supply the ENGINE value”

Settings.py その2みたいなものです。実は dj_database_url.config() だけでは足りず、引数を与える必要がありました。

DATABASES = {}
# DATABASES['default'] =  dj_database_url.config()
DATABASES['default'] =  dj_database_url.config(
  default='postgres://user:pass@localhost/dbname'
)

 
そうするとユーザ名?パスワード?DBのアドレス?ドメイン名?どこに書いてるの?みたいな感じになるのですが、以下のように DB を選択し、次のページの Overview タブで URL をそのままコピペするようなイメージです。

Django PostgreSQL DatabaseError: relation “categories” does not exist
 

④ runtime.txt

自分は Python3 を使っていますが、そのまま Heroku にあげると Python2 の環境になってしまいますので、以下の runtime.txt ファイルをプロジェクトのルートディレクトリに保管。

python-3.4.1

 

⑤ relation “categories” does not exist

model を修正したのに migrate を適用していなかったら出てきました。local の環境では migrate しなくても動いてたのにな...

Django PostgreSQL DatabaseError: relation “categories” does not exist
 

そのほか

Git チュートリアル コマンドの説明もあってわかりやすい。
heroku 上の DB の初期化
heroku pg:reset DATABASE

Remove all ads