環境構築

Heroku に MySQL の環境構築をする

2018/11/07

以前、AWS Cloud9 で開発した Laravel のスタートページをデプロイしました。

しかし、まだデータベースの設定をしていないので、make:auth ができなかったりします。

今回は Heroku にデータベース(MySQL)を構築して、認証画面(make:auth)をデプロイしてみます。

 

ゴール地点

ヘロクでデータベースの作成&マイグレーションを実行して、認証画面の作成。

【テスト用アカウント】
e-mail : test@test.com
password : testtest

 

前提条件

AWS Cloud9 で Laravel の認証画面が作成されており、Heroku にデプロイ済み。

よくわからない方は以下のページをご参考ください。

 

手順

1)クレジットカードの登録
2)addons:addコマンドの実行
3)環境変数の設定
4)データベースの作成
5)動作確認

 

1)クレジットカードの登録

Heroku の DB はデフォルトでは Postgres になっています。

「Cleardb」というアドオンを使って MySQLに変更する必要が出てくるのですが、実はそのままだとアドオンが使えなかったりします。

MySQL (アドオン)を使うためにはクレジットカードの登録が必要になります。
(※登録しても、無料枠で使えば課金されることはありません。)

1.Heroku のダッシュボードの一番右側のアカウントの項目から「Account settings」をクリック。
2.「Billing」タブをクリックし、「Add Credit Card」クリック。
3.ダイアログが表示されるので、カード情報を入力

英語での住所の書き方!

英語で住所を書く場合、日本での書き方と逆になり、番地が一番最初に来ます。
よくわからない方は以下をご参考ください。

英語の住所(Billing/Shipping Address) の書き方

 

2)addons:addコマンドの実行

クレジットカード情報を登録したら、以下のコマンドを実行します。


# ClearDBアドオンをいれる
$ heroku addons:add cleardb

実行後、configコマンドで Heroku の環境変数である CLEARDB_DATABASE_URL が確認できます。


$ heroku config | grep CLEARDB_DATABASE_URL

ポイント

パイプを使って「CLEARDB_DATABASE_URL」の箇所だけ表示してます。
設定を全部確認したい場合は heroku config のみでOK。

上記のコマンドを打つと自分のデータベースのURLの情報がでてきます。


CLEARDB_DATABASE_URL: mysql://[DB_USERNAME]:[DB_PASSWORD]@[DB_HOST]/[DB_DATABASE]?reconnect=true

表示された内容を確認して、このあとにする環境変数の設定で使います。

 

3)環境変数の設定

登録方法

登録は config:set コマンドで行います。


$ heroku config:set  [環境変数]=[登録する内容]

CLEARDB_DATABASE_URLの内容を確認してDBの環境変数の設定をします。


$ heroku config:set DB_DATABASE=[データベース名]
$ heroku config:set DB_HOST=[ホスト名]
$ heroku config:set DB_USERNAME=[ユーザー名]
$ heroku config:set DB_PASSWORD=[パスワード]

その他の設定。


$ heroku config:set APP_ENV=heroku
$ heroku config:set LANG=ja_JP.UTF-8
$ heroku config:set TZ=Asia/Tokyo

 

4)データベースの作成

ヘロク上でマイグレーションを実行します。


$ heroku run php artisan migrate

ポイント

migration は heroku run php artisan migrate ではなく、heroku run bashコマンド後にphp artisan migrate を入力して実行することも可能。

なお、exitコマンドで抜けることができます。

これで、「make:auth」のデータベースはできました。

 

5)動作確認

AWS Cloud9 上で作成した認証画面(make:auth)のファイルをヘロクのリモートリポジトリへプッシュ。

openコマンドの実行。


$ heroku open

上記のように表示されればOKです。

以上です。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-環境構築