herokuでDjangoプロジェクトをデプロイした時のエラーと疑問についての解決策メモ
- 作者: Neil Middleton,Richard Schneeman
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2013/11/24
- メディア: ペーパーバック
- クリック: 2回
- この商品を含むブログを見る
コメント
いつもはAWSに直接デプロイしてますが、今回は練習も兼ねてherokuでDjangoをデプロイしました。無事できてよかった・・・ その時にエラーに色々見舞われたので、その解決策と参考になった資料を上げておきます。
疑問1:herokuはローカルでもPostgreにしておかなければいけないのか??
回答=>いいえ
解説=>下記の部分が対応します。なのでいつものDATABASE=から始まる部分は無視されます。
#settings.py import dj_database_url db_from_env = dj_database_url.config() DATABASES = { 'default': dj_database_url.config() } #↑これがないと'DATABASES' is not definedというエラーがでました。 DATABASES['default'].update(db_from_env)
疑問2:wsgi.pyの設定についてざっくり機能をしりたい
回答・解説=>下記の部分がで2つに分かれている(ようです)。前半が通常のWSGIサーバー設定で、後半が静的ファイルの設定(のようです)
#wsgi.py #ここからがwsgi.pyのheroku用セッティングコードです import os from dj_static import Cling from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testforms.settings") application = Cling(get_wsgi_application()) #ここまで #下記が静的ファイルのセッティングです from whitenoise.django import DjangoWhiteNoise application = DjangoWhiteNoise(application) #ここまで
white noiseの設定はここの記事が参考になりました!
疑問3:psycog2でエラー「Error: could not determine PostgreSQL version from '10.3'」がでてウワ〜・・・
回答・解説=>psycog2のバージョンが古いせいかも
#requirements.txt psycopg2==2.7.1 #2.6.x,2.5.xだと2018年4月現在 #バージョンが古いせいでエラーになるのかもしれません・・・
疑問4:コード変更したのに同じエラーが出ます??あれ??
回答・解説=>変更したらgit add.=> git commit -m "comment"が必要です。忘れてないですか??
疑問5:runtime=python-3.6.4だとエラーが・・・python最新版だし、ターミナルにも3.6.4って書いてるのにぃ・・・
回答・解説=>下記のようなエラーがでました。私は3.5.2に設定すると直りました。謎。
#runtime.txt python-3.5.2
こういうエラー=>“importlib._bootstrap” has no attribute “SourceFileLoader” stackoverflow.com
疑問6:どこでherokuコマンドを打つか??
回答・解説=>manage.pyのあるディレクトリ。ここにProcFileとかも集めたので、まあ何があるディレクトリなのか厳密な条件はわからないものの、これで行けるでしょうという。
$ ls #ここですべてのherokuコマンドを打ちました Procfile forms runtime.txt composer.json manage.py templates db.sqlite3 requirements.txt testforms#アプリ名
参考資料
スタートはここから、アカウントを取る〜CUIで使えるようにするまで。 qiita.com
メインの手順資料。自分の環境ではそのままやるとエラーになったので上記の記事とコードをちょっと微調整が必要だった。微調整分は上の疑問の回答・解説に記載しました。 qiita.com