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

Railsアプリでherokuを使うときのDBをMySQLに変更する

More than 1 year has passed since last update.

はじめに

かなり色々な人がまとめてくれていましたが、その通りにやっても動かなかったので、備忘録としてまとめておきます。

自分の場合$heroku loginコマンドが上手く使えなかったので、そういう方がいればこちらの方法で。
※ちなみに、mysqlを使用する場合はクレジットカードが必要になるので(無料で利用できます)
それだと困る方は、標準のpostgresを利用することができます。

使用環境

ruby 2.5.0
Rails 5.1.5
mysql2 0.4.10

1. herokuアプリの作成

herokuのアカウント取得に関しては、省略します。ここではherokuアカウントがあることを前提に。

まずは、heroku Toolbeltをインストールします。
heroku Toolbeltとは、コマンドライン上で、herokuの操作ができるようにできるツールです。

$brew install heroku-toolbelt

(※これは、rubyが入っていないと動かないようなので、Ruby以外で利用する場合は適宜インストールしてください。)

これでインストール完了です。ここで

$heroku login

とかやると、IDとパスワードでherokuにログインができるようになります。

次に、herokuアプリケーションを作成します。

$heroku create

で作成が可能です。

ちなみに、

$heroku create [app_name]

とやるとアプリ名が設定できます。
設定を変更したい場合は

$heroku rename [app_name]

とすると、あとからでも変更ができます。

$ heroku create
=> Creating [hogehoge]... done, stack is cedar-14
=> https://hogehoge.herokuapp.com/ | https://git.heroku.com/hogehoge.git
=> Git remote heroku added

のようになにも指定しない場合、hogehogeのようなランダムの文字列が生成され、アプリ名を設定した場合は、こちらにアプリ名が入ります。

ちなみに、URLも同様に生成されるので、この場合、https://hogehoge.herokuapp.com/でアクセスが可能です。

2. データベースの設定

今回のゴールは、DBの設定が以下の様になっていることです。

スクリーンショット 2018-03-05 0.18.20.png

CREARDB_DATABASE_URLmysql:hogehogehoge
DATABASE_URLmysql2:hogehogehoge

これを目指して設定していきましょう。

まずは、ClearDBアドオンの設定です。

※ClearDBアドオンとは、ClearDBというHerokuとは独立したデータベースサービスが提供している、MySQLを使うためのものです。

herokuのwebページに戻ると先程作成したアプリケーションが一覧に並んでいるかと思います。

スクリーンショット 2018-03-04 12.27.44.png

こちらからアプリケーションを選択して、OverviewConfihure Add-onsから設定をしていきます。

スクリーンショット 2018-03-04 12.26.23.png

こちらのフォームで、clearDBと入力すると、以下のうように、clearDB MySQLアドオンが登録できます。

スクリーンショット 2018-03-05 0.07.06.png

SettingsのConfig Variablesから設定一覧が確認できるかと思いますが、そちらのCREARDB_DATABASE_URLmysql:hogehogehogeに変わっているかと思います。

コンソールからは、heroku configで設定が確認できます。

確認ができたら、今度はDATABASE_URLを変更していきます。

コンソールから、

heroku config:add DATABASE_URL='mysql2:{hogehoge}'

と入力し(hogehogeは先程のCREARDB_DATABASE_URLのmysql:以下と同様)

設定可能です。

もう一度コンソールから、heroku configで設定が確認すると、今回のゴールである、二つの設定が変更できたかと思います。

3.Railsプロジェクトの設定

Railsプロジェクトの方でもデプロイの準備をします。

config/environments/production.rbにある

config.assets.compile = falseconfig.assets.compile = trueに変更します。
(元から変更の必要がない場合もあります。)

ここまできたらコンソールから

git push heroku master

として、herokuにアプリケーションをpushすることが可能です。(これでデプロイ)

最後に

heroku run rake db:migrate

でmigrateしてあげて、先程のアプリケーションURLにアクセスすると、自分のアプリケーションが立ち上がっているかと思います。

まとめ

色々行き来しましたが、コンソールだけで設定も可能です。自分の場合何故かClearDBのアドオンが入手できなかったので、GUIで操作しました。

今回作業してみてわかったかと思いますが、herokuを使うと自分のアプリケーションを簡単にデプロイすることが可能です。設定やアドオンなどを利用でき、ある程度であれば無料で使うことができるので、今後共お世話になるかと思います。

参考

leverages
インターネットを事業軸に、IT、医療、その他新規分野に30を超える自社メディア事業を展開しています。
https://leverages.jp/
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
ユーザーは見つかりませんでした