今回は、MySQLを使用したRailsアプリケーションをHerokuでデプロイする手順について解説したいと思います。簡単なデバッグ方法も解説するので、予期せぬエラーが出た際の参考になればと思います。
この記事ではMac OSを使用したデプロイについて解説しています。
Herokuとは

Herokuとは、アプリケーションを実行するためのプラットフォームを提供しているサービスです。Herokuを使用することで簡単に本番環境にデプロイすることができます。
Herokuにはいくつかのプランがあり、無料でも本番環境にデプロイすることが可能です。
アプリケーションを実行するためのプラットフォームを提供しているサービス
こちらはPaaS(Platform as a Service)と呼ばれています。
PaaSを使用したデプロイは、サーバー構成などのカスタマイズが制限されますが、注力すべき部分とそれ以外を割り切った運用をすることが可能です。
PaaSの他には、IaaS(Infrastructure as a Service)と呼ばれるサービスがあります。
Amazon EC2やGCP(Google Cloud Platform)がその代表例として挙げられ、ネットワーク環境などを含めた環境構築ができるサービスとなっています。
IaaSは大規模なWebサービスのデプロイに使用されます。
Herokuでのデプロイ手順
ではここから、Herokuを用いたデプロイの手順について解説していきます。
まずは、今回デプロイするアプリケーションの概要について見ていきましょう。
- アプリケーション名:favorite-app
- Rails:6.0.3.2
- Ruby:2.6.5
- DB:MySQL
favorite-appについてはこちらの記事を参考にしてください。

Herokuの会員登録
デプロイするにはHeroku上での会員登録が必要となります。
以下のリンクからHerokuにアクセスし、「無料で新規登録」をクリックしましょう。
↓ ↓ ↓

以下の必要項目を全て入力し、「無料アカウント作成」をクリックします。

すると登録したメールアドレスに確認メールが届くので、そちらからHerokuに再度アクセスしましょう。

最後にパスワードを設定します。

パスワード設定後、Herokuのダッシュボードに遷移すれば完了です。

クレジットカードの登録
クレジットカードをHeroku上で登録することで、月間の稼働時間をあげるだけでなく、本番環境でMySQLを使用することができます。
以下の画像の手順でクレジットカードの登録を行いましょう。デビットカードでの登録も可能です。



「Save Details」をクリック後、以下のようなページに遷移すればクレジットカードの登録が完了です。

Heroku CLIのインストール
次に、Herokuでアプリケーションのデプロイなどを操作するためのHeroku CLIをインストールしましょう。
The Heroku Command Line Interface (CLI) makes it easy to create and manage your Heroku apps directly from the terminal. It’s an essential part of using Heroku.
Herokuコマンドラインインターフェイス(CLI)を使用すると、ターミナルから直接Herokuアプリを簡単に作成および管理できます。これはHerokuを使用する上で不可欠な部分です。
以下のコマンドを打ち込み、Heroku CLIをインストールしましょう。
% brew tap heroku/brew && brew install heroku
Heroku CLIがきちんとインストールされているか、以下のコマンドで確認します。
% heroku --version
以下のような表示がされればインストールが成功しています。
heroku/7.0.0 (darwin-x64) node-v8.0.0
インストール方法は以下の記事を参考にしています。
The Heroku CLI:https://devcenter.heroku.com/articles/heroku-cli
Herokuへログイン
Heroku CLIのインストール後は、Herokuへログインしましょう。
ログインするには以下の流れを実行する必要があります。
- heroku loginを入力
- エンターキーを押下
- 自動的にブラウザに遷移するので、「Log In」をクリック
- ブラウザを閉じる
具体的に見ていくと、以下の流れになります。
% heroku login
heroku: Press any key to open up the browser to login or q to exit:
①ここでエンタキーを押下する。
②自動的にブラウザに遷移し、ログインが求められる。
③ログイン後、ブラウザを閉じると以下のような文言が表示される。
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/e02fb933-fad6-41ba-8fc5-727c71f1dee6?requestor=SFMyNTY.g3QAAAACZAAEZGF0YW0AAAAPMTI2LjI1NS4xMDQuMTUyZAAGc2lnbmVkbgYAEAO2v3QB.eV_pNcbnj7x95uF5atcZE3i56A2-BPPcUYYSl9T0wKQ
Logging in... done
Logged in as 登録したメールアドレス


Heroku上でアプリケーションを作成
ここからは実際にHeroku上でアプリケーションを作成し、デプロイ作業に取り掛かっていきます。
まずは以下のコマンドを打ち込み、Heroku上でアプリケーションを作成しましょう。ブラウザ上でもアプリケーションの作成は可能ですが、今回はターミナルで実行していきます。
% heroku create favorite-app-2
「favorite-app」という名前はすでに使われていたため、「favorite-app-2」と命名しました。
以下のコマンドを打ち込み、正しくアプリケーションが作成されたか確認します。
% git config --list --local | grep heroku
以下のような文言が出れば成功。
remote.heroku.url=https://git.heroku.com/favorite-app-2.git
remote.heroku.fetch=+refs/heads/*:refs/remotes/heroku/*
MySQLの追加
続いてHeroku上にMySQLを追加しましょう。
前述しましたが、HerokuではデフォルトでPostgreSQLが設定されているため、MySQLは手動でインストールする必要があります。
以下のコマンドを打ち込んでください。
% heroku addons:create cleardb:ignite
以下のような文言が出れば成功。
Creating cleardb:ignite on ⬢ favorite-app-2... free
Created cleardb-shallow-34916 as CLEARDB_DATABASE_URL
Use heroku addons:docs cleardb to view documentation
MySQLの接続設定
次にHeorku上で作成したアプリケーションの環境変数を設定していきます。
まずは「heroku config」というコマンドを入力し、データベース情報を確認しましょう。
% heroku config
以下のように出力される。
=== favorite-app-2 Config Vars
CLEARDB_DATABASE_URL: mysql://b5a7353ff4e54a:ce7955d@us-cdbr-east-02.cleardb.com/heroku_11ba3695e7f62e?reconnect=true
今回アプリケーションではmysql2というGem使用しているため、CLEARDB_DATABASE_URLのmysqlの箇所を「mysql2」に変更します。
% heroku config:set DATABASE_URL='mysql2://ここは変更しない'
以下のような文言が表示されれば完了。
Setting DATABASE_URL and restarting ⬢ favorite-app-2... done, v5
DATABASE_URL: mysql2://b5a7353ff4e54a:ce7955d@us-cdbr-east-02.cleardb.com/heroku_11ba3695e7f62e?reconnect=true
Herokuへデプロイ
ここまでで一通りに設定が完了しました。
後は、Herokuへプッシュ(デプロイ)しましょう。
% git push heroku master
デプロイ後、Heroku上でマイグレートを実行しましょう。
% heroku run rails db:migrate
これでHerokuを使用したデプロイ作業が完了しました。以下のコマンドを入力し、きちんと本番環境に反映されているか確認しましょう。
% heroku open
無事にアプリケーションが反映されています。

トラブルシューティング
ログの確認
デプロイの過程で予期しないエラーが起き場合があります。
しかしログを確認することで、その原因が判明しすぐに解決できる可能性があるので、ぜひこの機会にログを確認する方法をマスターしましょう。
ログの確認には以下のコマンドを入力します。
% heroku logs
しかし上記コマンドで表示されるログは非常に長く、かつ見るべきログは最下部にあるので効率がよくありません。
代わりに以下のコマンドを入力しましょう。
% heroku logs --tail
コンソールの実行
Heroku上でも「rails console」を実行することが可能です。
以下のコマンドを打ちこみ、実際の挙動を確かめてみてください。
% heroku run rails c
Running rails c on ⬢ favorite-app-2... up, run.9636 (Free)
Loading production environment (Rails 6.0.3.2)
pry(main)> puts 1 + 1
2
Heroku CLIのアンインストール
どうやってもうまく行かないという場合は、アンインストール試してみることも1つの手です。
アンインストールは以下の手順で行うことができるので、頭に入れておきましょう。
% brew uninstall heroku
% rm -rf ~/.local/share/heroku ~/Library/Caches/heroku
参考
The Heroku CLI:
https://devcenter.heroku.com/articles/heroku-cli
Getting Started on Heroku with Rails 6.x:
https://devcenter.heroku.com/articles/getting-started-with-rails6
今回はMySQLを使用したRailsアプリケーションをHerokuでデプロイする手順について解説しました。Herokuを使用することで手軽にデプロイ作業ができるので、ぜひ取り組んでみてください。