21
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-04

はじめに

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

自分の場合$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を使うと自分のアプリケーションを簡単にデプロイすることが可能です。設定やアドオンなどを利用でき、ある程度であれば無料で使うことができるので、今後共お世話になるかと思います。

参考

21
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?