herokuでMysqlを使う

2012年7月19日 Posted by PURGE

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

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

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

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

まずはherokuログイン。

C:\HerokuTest>heroku login
Enter your Heroku credentials.
Email: xxxx@whoocus.com
Password (typing will be hidden):
Authentication successful.

grepで設定されているDATABASE_URLを調べてみる。
すると、現在のデータベースDATABASE_URL(PostgreSQL)とアドオンしたClLEARDB_DATABASE_URL(Mysql)と共有データベースSHARED_DATABASE_URL(PostgreSQL)のURLをが見ることができる。

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

そこで、DATABASE_URLをClearDBのURLで書き換える。
気を付けるのは、URLの’mysql://’ → ‘mysql2://’ のように、対応しているgemのバージョンに合わせる。

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

そこで、herokuでDBのマイグレーション。

C:\HerokuTest>heroku run rake db:migrate
Running `rake db:migrate` attached to terminal... up, run.1

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

コメントを残す

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