MawaLog

一日一日を大切に、楽しく生きる。技術と音楽が好き。

herokuでDjangoプロジェクトをデプロイした時のエラーと疑問についての解決策メモ

Heroku: Up and Running

Heroku: Up and Running

  • 作者: 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の設定はここの記事が参考になりました!

qiita.com

疑問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