サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます
Django アプリケーションを Heroku へデプロイする手順 (その 1)

目次

はじめに

これまでに Django で作成したアプリケーションを Azure > GCP (GAE Flexible) とデプロイ先を移行してきましたが、今度は Heroku へと移行することにしました。それに伴ってデータベースも MySQL から PostgreSQL へ移行しましたが、そちらについては下記の記事で紹介済です。

本記事では、既存の Django アプリケーションを Heroku へデプロイする手順を 2回に渡ってまとめます。

Heroku の設定

Heroku CLI をインストールする

まずは Heroku CLI が無いことには話が進みません。snap でインストールします。 (Windows の場合は、Heroku CLI のインストーラが用意されているのでダウンロードしてインストールしてください。)
おまけsnap がインストールされていない場合は下記でインストールできます。

$ sudo apt install snapd

Heroku と Git を関連付ける

Herokuアプリケーション未登録の場合


Heroku でのデプロイは Git で行います。ここでは、Django アプリケーション (~/workspace/myapp) が Git で管理されている前提で話を進めます。

heroku create で Heroku 上にアプリケーション (heroku-myapp とします) を作成します。

$ cd ~/workspace/myapp
$ heroku create heroku-myapp
Creating ⬢ heroku-myapp... done
https://heroku-myapp.herokuapp.com/ | https://git.heroku.com/heroku-myapp.git

 

このコマンドで Heroku 上にアプリケーションが登録され、その URL (アプリケーションにアクセスする際のアドレス) と Git リポジトリのアドレス (Git のアクセスに利用するアドレス) を取得できます。また、同時に Git のリモートリポジトリとして heroku が追加されます。

$ git remote -v
heroku	https://git.heroku.com/heroku-myapp.git (fetch)
heroku	https://git.heroku.com/heroku-myapp.git (push)
・
・

 

Heroku アプリケーション登録済の場合

すでに Heroku 上にアプリケーションを作成済で、手元の Git ワーキングディレクトリを Heroku に関連付けするだけの場合は、 heroku create ではなく、 git remote add で Heroku の リポジトリをリモートリポジトリとして追加します。 Heroku のダッシュボードで Git リポジトリのアドレス (本例では https://git.heroku.com/heroku-myapp.git) を確認してから下記のコマンドを使います。

$ git remote add heroku https://git.heroku.com/heroku-myapp.git
$ git remote -v
heroku	https://git.heroku.com/heroku-myapp.git (fetch)
heroku	https://git.heroku.com/heroku-myapp.git (push)
・
・

settings.py の修正

Django-Heroku のインストール

Heroku 上でのデータベース接続は環境変数を利用しますので settings.py の DATABASES を書き換える必要があります。また、gunicorn では js, css, html ファイルなどの静的ファイルを取り扱う事ができないため、WhiteNoise というライブラリを利用する必要があります。Django-Heroku を使うとこれらの設定を簡単に行えますので、こちらを利用することにします。

まず Django-Heroku をインストールします。(WhiteNoise も依存ライブラリとして自動的にインストールされます。)

$ pip install django-heroku

setings.py の編集

次に settings.py の最下段に下記を追加します。

# Configure Django App for Heroku.
import django_heroku
django_heroku.settings(locals())

これだけの設定で、ローカルでの開発、Heroku 上での運用の両方に対応できます。 settigs.py の既存の設定を書き換える必要はありません。

おまけDjango-Heroku が何をやっているのか興味のある方は、 Django-Heroku のソースコードの django_heroku/core.py にある settings() のコードを読んでみてください。 DATABASES や STATIC_ROOT を書き換えています。

今回は Heroku へのデプロイの準備として、Heroku CLI と Django-Heroku のインストール等についてまとめました。次回はいよいよ、他の設定ファイル (runtime.txt,requirements.txt, Procfile) を準備し、デプロイするところまでをまとめます。

関連記事

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