【スポンサーリンク】
ClearDB MySQLの追加
heroku上でMySQLを使用するためには、ClearDB MySQL
アドオンを追加する必要がある。
herokuの管理画面からConfigure Add-ons
をクリックする。
検索バーにclardbと入力すると、選択肢にClearDB MySQL
が表示されるので、それを選択する。
Plan nameがIgnite - Free
(無料)であることを確認し、Submit Order Form
をクリックする。
Installed add-onsにClearDB MySQLが追加されたことを確認する。
settings.pyの修正
settings.pyを修正し、データベースの接続情報を記載していく。事前にdotenvモジュールをインストールしておく。dotenvの基本的な使い方は、こちらを参照。
最初に、接続情報を環境変数から読み込むために、dotenvモジュールをインポートし、環境変数をロードするための記述を追加する。
from dotenv import load_dotenv
load_dotenv()
次に、データベースの設定部を以下の通りに修正する。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': os.environ.get('DATABASE_NAME'), 'USER': os.environ.get('DATABASE_USER'), 'PASSWORD': os.environ.get('DATABASE_PASSWORD'), 'HOST': os.environ.get('DATABASE_HOST'), } }
これによって、heroku上で設定する各環境変数が自動で読み込まれるようになる。
【スポンサーリンク】
環境変数の設定
herokuの管理画面から、環境変数を設定していく。
settingsボタンをクリックする。
Reveal Config Vars
をクリックし、環境変数一覧を表示させる。(コマンドプロンプトでheroku config
を実行しても環境変数一覧を取得できる。)
CLEARDB_DATABASE_URL
に設定されている値をコピーし、メモ帳等に貼り付けておく。
mysql://b6908a9b6cd274:7677ab46@us-cdbr-east-04.cleardb.com/heroku_7df9e1c69165e8a?reconnect=true
この文字列の中には、以下の通りユーザー名、パスワード、ホスト、データベース名が含まれており、herokuからデータベースに接続する際に必要となる。
- データベース名:heroku_7df9e1c69165e8a
- ユーザー名:b6908a9b6cd274
- パスワード:7677ab46
- ホスト:us-cdbr-east-04.cleardb.com
これらの情報をherokuの環境変数に追加し、settings.pyから読み込めるようにする。
settings.pyで設定したキーと、herokuの環境変数のキーが一致していないと読み込まれないので注意。
【スポンサーリンク】
MySQL Workbenchの設定
MySQL Workbenchを起動し、+
ボタンをクリックする。
サーバーの接続情報を入力する。入力する項目及び内容は以下の通り。
- Connection Name: データベース名
- Hostname: ホスト
- Username: ユーザー名
次に、Store in Vault ...
ボタンをクリックする。
パスワードを入力し、OKボタンを押す。
Test Connection
ボタンを押し、以下の表示が出れば成功。OKボタンを押してWorkbenchを修了させる。
マイグレーション実行
最後に、コマンドプロンプトから、heroku上でマイグレーションを実行すれば準備完了。コマンドは以下の通り。
heroku run python manage.py makemigrations
heroku run python manage.py migrate