Djangoで作ったアプリをherokuにデプロイする時の一連の流れ

このサイト自体を公開する時に行った作業の一連の流れです。

前提

・python3及びDjangoについて基本的な知識がある事
・Djangoで既にアプリケーションを作成済みである事
・作成したアプリケーションがgitのリポジトリに登録済みなこと

はじめに

まずはherokuのアカウントを作りましょう。

メールアドレスや基本情報を登録したら、登録したメールアドレス宛に確認メールが届くはずなので、メールの中のリンクにアクセスしてアカウントを有効化しましょう。

heroku上でアプリを作成する

herokuに登録が完了したら次はheroku上でappを作成しましょう。
又は、次の手順の後にコマンドを実行してappを作成します。

heroku CLIのダウンロード

heroku CLIというherokuの操作を行うためのソフトを
https://devcenter.heroku.com/articles/heroku-command-line

からダウンロードするかherokuの公式サイトからダウンロードしましょう。

ダウンロード、インストールが完了したら heroku CLI にログインします。

まずコマンドプロンプトで

自分のDjangoアプリのあるフォルダに移動(.gitのあるフォルダ)

$ heroku login

でログインします。
メールアドレスとパスワードを聞かれるのでherokuに登録したときのものを入力しましょう。

前の手順でappを作成していない場合には

$ heroku create -a アプリ名

でappを作成します。

デプロイしてみる

いよいよデプロイ作業に入ります。
が、その前にherokuにデプロイするうえで必要なファイルを整えます。

まず、herokuにDjangoのアプリをデプロイするのに必要なモジュールをインストールします。

$ pip install django-heroku

次に、自分のDjangoのプロジェクトのsetting.pyファイルの最後に下記の内容を追加します。

import django_heroku
django_heroku.settings(locals())

続いて.gitフォルダのあるフォルダ内に Procfile
requirements.txt
runtime.txt
の三つのファイルを用意します。

Procfileの中身は

web: gunicorn Djangoアプリケーションのプロジェクト名.wsgi

requirements.txtの中身は
コマンドプロンプトで

$ pip freeze

を実行したときに表示される内容をそのままコピーして貼り付けます。
例えば

certifi==2016.2.28
dj-database-url==0.5.0
Django==2.0.8
django-heroku==0.3.1
gunicorn==19.9.0
psycopg2==2.7.5
pytz==2018.5
whitenoise==4.1

runtime.txtの中身は実行するpythonのバージョンを記述します。

python-3.6.3

自分の環境のpythonのバージョンは

$ python --version

で確認できます。

ここまで作業したら一度変更内容をリポジトリにコミットしましょう。

コミットが完了したら。

$ heroku git:remote -a アプリ名

を実行して自分の作ったgitのリポジトリをheroku appに紐づけます。 アプリ名はherokuで作ったappの名前です。

$ git push heroku master

を実行するとデプロイ出来ます。

この時にpythonのバージョンが最新でないと警告が表示されますが全く問題はないので気にしない

アプリに変更を加えた時はgitでリポジトリにコミットした後に、またこのコマンドを実行する事で変更を反映できます。

データベースの初期化

herokuへのデプロイが成功したらまずDjangoデータベースの初期化を行いましょう。
heroku CLIで

$ heroku run python manage.py migrate

を実行してデータベースを初期化します。
※このコマンドを実行しないと多くの場合、自分のサイトにアクセスした時にエラーを吐かれます。

続いて必要であれば管理ユーザーを作ります。

$ heroku run python manage.py createsuperuser

ユーザー名やメールアドレス、パスワードを設定します。

さいごに

ここまで出来れば作業は完了です。お疲れ様でした。

あとは自分のサイトにアクセスしてみましょう。

https://アプリ名.herokuapp.com

にアクセスするか

$ heroku open

して自分のデプロイしたアプリが表示されれば無事完了です。

heroku CLIのより細かいコマンドはこちらで確認できます。