Heroku+Rails+MySQLでデプロイした際の備忘録として作成いたしました。
環境
MacOS 10.15.4
Ruby 2.5.1
Rails 5.2.3
Mysql2 0.5.3
Heroku上にアプリを作成
※Herokuの新規登録とクレジットカードの登録がまだの方は登録を済ませてから行ってください。
$ heroku login
上記のコマンドでブラウザにログインページが出てくるのでログインしてください。
$ heroku create <アプリ名>
$ git remote
herokuのgit URLが表示されることを確認してください。
下記の様に出力されます。
heroku https://git.heroku.com/<アプリの名前>.git (fetch)
heroku https://git.heroku.com/<アプリの名前>.git (push)
origin git@github.com:shou1012/<アプリの名前>.git (fetch)
origin git@github.com:shou1012/<アプリの名前>.git (push)
git remoteで表示されたherokuのgit URLをリモートリポジトリに追加します。
$ git remote add heroku https://git.heroku.com/xxxxx-xxxxx-xxxxx.git
環境設定
データベースと環境変数の設定を行なっていきます。
今回は無料のigniteプランで作成致します。
$ heroku addons:create cleardb:ignite
$ heroku config
下記の様にClearDBのURLが表示されますので、コピーしておきます。
CLEARDB_DATABASE_URL: mysql://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true
上記のURLを参考に下記を登録していきます。
$ heroku config:add DB_NAME='<データベース名>'
$ heroku config:add DB_USERNAME='<ユーザー名>'
$ heroku config:add DB_PASSWORD='<パスワード>'
$ heroku config:add DB_HOSTNAME='<ホスト名>'
$ heroku config:add DB_PORT='3306'
続いて、DATABASE URLを登録します。
※今回はmysql2で登録しますが、Gemfileを確認して'mysql'を使用している場合は、mysql://で始めてください。
$ heroku config:add DATABASE_URL='mysql2://<ユーザー名>:<パスワード>@<ホスト名>/<データベース名>?reconnect=true'
Railsの環境変数にcredentials.yml.encを使っている場合は下記で登録できます。
$ heroku config:set RAILS_MASTER_KEY='cat config/master.key'
heroku configで登録内容が確認できます。
$ heroku config
本番環境のcompileの設定
config/environments/production.rbに下記を追加します。
config/environments/production.rb
config.assets.compile = true #falseからtrueへ
config.assets.initialize_on_precompile=false
デプロイ
$ git add .
$ git commit -m "コミットメッセージ"
$ git push heroku master
これでうまくいけばデプロイは完了です!!
エラーが出る場合はこちらをご確認ください。
最後にdbマイグレーションをします。
$ heroku run rake db:migrate
では、アプリを開いてみましょう!
$ heroku open
以上でHerokuによるデプロイが完了しました!
最後に
Herokuを使うことで非常に簡単にデプロイができました。
問題がなければこれからも使用していきたいです。
参考
https://kurose.me/heroku-deploy/
https://qiita.com/rainbow___0/items/1789920cf797b5e80a5e
https://qiita.com/daigou26/items/64d87d987652c4108ae6
https://qiita.com/terufumi1122/items/27bf288414569e13e050