Help us understand the problem. What is going on with this article?

Heroku+Rails+MySQLでデプロイする方法

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

shimpex
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした