Djangoアプリ Heroku デプロイ
初めからの手順
git のインストール
Heroku CLIのインストール
herokuにログインしたり、デプロイするためのコマンドを利用できる devcenter.heroku.com
djangoをherokuにデプロイするには以下の3つが必要
runtime.txt => Pythonのバージョンを記載
requirements.txt
setup.py
Pipfile
runtimte.txt
python-3.6.0
必要なモジュールのインストール
python3 -m pip install gunicorn
gunicornとは何かというとWSGI HTTPサーバーのこと
Gunicornの「Green Unicorn」は、UNIX用のPython WSGI HTTPサーバーです。 これは、RubyのUnicornプロジェクトから移植されたpre-forkワーカーモデルです。 Gunicornサーバーは、さまざまなWebフレームワークと幅広く互換性があり、シンプルに実装され、サーバーリソースの使用量が少なく、かなり高速です。
requirements.txt ファイルの作成 herokuこのファイルを見て、モジュールインストールする
pip freeze でインストールされているパッケージが表示される。それをそのまま記載する。
pip freeze //=== asgiref==3.2.7 Django==3.0.6 gunicorn==20.0.4 Pillow==7.1.2 pytz==2020.1 sqlparse==0.3.1
で表示されたものをrequirement.txtに記載する
Prockfile の作成
どのWEBサーバーを利用するか、どんなコマンドを実行するか記載してあげる
web: gunicorn "プロジェクト名".wsgi --log-file - release: python manage.py migrate
==========今日はここまで
pip install whitenoise
.gitignore ファイルの作成
不要なログ・ファイルなどをuploadしないため コピペして.gitignoreファイルに貼り付ける
//MACの場合追記する .DS_Store
git init git add . git status //チェックする git commit -m "initial"
heroku
heroku create xxxxapp_name //これでdeployできる git push heroku master
デプロイにはSTATIC_ROOTの定義が必要
setting.py
STATIC_URL = '/static/' //アプリ内のフォルダ名 STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
修正したら git push heroku master を繰り返す
logの見方
//logを見れば問題がわかる heroku logs --tail
Procfile ファイルの作成
拡張子はつけない プロセスを記載する。
//webはプロセス名 //gunicornはコマンド //xxxdjango_projectはsetting.pyに登録してるアプリ名 //wsgi Web Service Gateway Interface web: gunicorn xxxxdjango_project_name.wsgi //他のバックグラウンドのワーカーなども登録可能
ALLOWED_HOSTの追加
Djangoのセキュリティーの為
セキュリティーキーの作成 python3.6以上が必要
operation error no such table: xxx_xxx
herokuにDBがないと言われている
heroku上のDBの確認
//pg はポストグレスの略 herokuではDBはポストグレス heroku pg
db上の設定をしてくれるライブラリ
インストールするだけで whitenoiseやDB-urlなどを設定してくれる
pip install django-heroku
setting.py
import django_heroku