サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます

はじめに

これまでに Django で作成したアプリケーションを Azure > GCP (GAE Flexible) とデプロイ先を移行してきましたが、今度は Heroku へと移行することにしました。 前回、既存の Django アプリケーションを Heroku へデプロイする手順のうち、下記についてまとめました。

  • Heroku の設定
  • settings.py の修正

今回は、後半として、下記について記載します。

  • 設定ファイル(runtime.txt,requirements.txt,Procfile)の作成
  • Heroku にデプロイする
  • データベースのマイグレーション

設定ファイルの作成

runtime.txt の作成

Python のバージョンを記述した runtime.txt を ~/workspace/myapp に置きます。

 

おまけSpecifying a Python Runtime | Heroku Dev Center によれば、2018/08/15 現在では、python-3.7.0 と python-3.6.6 が利用できるようです。ご自身の環境に合わせて設定してください。

requirements.txt の作成

requirements.txt は、Python の実行に必要なパッケージを記述したファイルです。下記を実行すれば作成できます。


なお、requirements.txt に記述されたパッケージに依存するパッケージは自動的にインストールされます。したがって、requirements.txt にすべてのパッケージを書く必要はなく、必須のものだけを記述しておけば良いでしょう。

下記は一例です。

作成した requirements.txt を ~/workspace/myapp に置きます。

Procfile の作成

Procfile には、Heroku 上でのアプリケーション動作を定義します。下記のように記述します。

appname は Django のアプリケーション名です。Heroku の URL が呼ばれると appname/wsgi.py が gunicorn によって実行されます。Procfile も ~/workspace/myapp に置きます。

Heroku にデプロイする

Heroku へのデプロイは git で Heroku のリモートリポジトリ (heroku) の master ブランチへ push するだけです。下記の出力は一例です。

上記出力にあるように、途中で manage.py collectstatic も自動的に実行されています。

データベースのマイグレーション

Heroku 上で必要なデータベーステーブルを作るために migrate, createsuperuser (管理用ユーザが必要な場合) を実行します。

おすすめすでに初期化したデータベースが手元にある場合は、上記を実行する代わりに Heroku とローカルの PostgreSQL 間のデータコピー の記事を参考にローカルから Heroku へデータをコピーすると楽です。

ここまででアプリケーションにアクセスできるようになったはずです。

関連記事

低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から最大容量100GB WordPress専用高速サーバー Z.com WP
おすすめの記事