herokuでMysqlを使う

herokuでは、デフォルトのストレージとして、共有データベースというPostgreSQLのデータベースを5MB無料で用意している。

開発はMysqlを利用しているので、ぜひherokuでもMysqlを使用したい。そんな時は、herokuのAdd-onsの一つであるClearDBというアドオンを利用できる。これもまた5MBまで無償で利用できる。

ClearDBは、herokuのWeb画面からもアドオン追加できる。
設定方法は、サイト上のドキュメントを見れば記載されているが英語である。

とりあえず、手順の覚書。

まずはherokuログイン。
[bash]
C:\HerokuTest>heroku login
Enter your Heroku credentials.
Email: xxxx@whoocus.com
Password (typing will be hidden):
Authentication successful.
[/bash]

grepで設定されているDATABASE_URLを調べてみる。
すると、現在のデータベースDATABASE_URL(PostgreSQL)とアドオンしたClLEARDB_DATABASE_URL(Mysql)と共有データベースSHARED_DATABASE_URL(PostgreSQL)のURLをが見ることができる。
[bash]
C:\HerokuTest>heroku config | grep DATABASE_URL
CLEARDB_DATABASE_URL: mysql://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true
DATABASE_URL:postgres://xxx@xxx.compute-1.amazonaws.com/xxx
SHARED_DATABASE_URL:postgres://xxx:xxx@1234.comput
e-1.amazonaws.com/xxx
[/bash]

そこで、DATABASE_URLをClearDBのURLで書き換える。
気を付けるのは、URLの’mysql://’ → ‘mysql2://’ のように、対応しているgemのバージョンに合わせる。
[bash]
C:\HerokuTest>heroku config:add DATABASE_URL=’mysql2://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true’
Setting config vars and restarting heroku-test… done, v9
DATABASE_URL: mysql2://xxxxx:xxxx@us-xx-east.cleardb.com/heroku_1234?reconnect=true
[/bash]

そこで、herokuでDBのマイグレーション。
[bash]
C:\HerokuTest>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal… up, run.1
[/bash]

おそらく以上で、Mysqlを認識することでしょう。

This entry was posted in heroku, MySQL, Ruby, 技術情報. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です