Djangoアプリ Heroku デプロイ

初めからの手順

git のインストール

gitforwindows.org

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

github.com

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