田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

herokuのxeroundを導入した。すごくハマった・・・

最近herokuにどっぷりです。
昔からmysqlを入れていたので、herokuでmysqlを使いたいと思い「xeround」っていうアドオンを導入してみました。

導入自体は簡単だったのですが、文字化けががが・・・
何やっても直らない、導入自体は以下のURLを参考に
ヵェの部屋♪-BLOG- : herokuのアドオンでmysqlを利用する。もち無料。

で、何が悪いのか全くわからず、色々と挑戦していたらAdapterが「mysql2」ではなく「mysql」になってました。
しかし、それだけで文字化けになるとは・・・しかもなんで、「mysql」なんだよっと思いながら修正をかましてやりました。(元々はmysql2を入れたのですが、うまく動作せずにmysqlにしたら素直に動いたので、「あ、動いているじゃん」と勘違いしてしまいました。)

まず、Gemfileに追記

gem 'mysql2'
gem 'activerecord-mysql-adapter'
# activerecord-mysql-adapterはちょっといるのかわからないけど、入れろよって言われたのでつけてます。

ここからが面倒くさいです。
まず「heroku config」で設定周りの確認をします。

DATABASE_URL:                       mysql://*******************
XEROUND_DATABASE_ADAPTER:           mysql
XEROUND_DATABASE_FAILOVER_ADAPTER:  mysql
XEROUND_DATABASE_FAILOVER_HOST:    **********.db.xeround.com.
XEROUND_DATABASE_FAILOVER_NAME:    **********
XEROUND_DATABASE_FAILOVER_PASSWORD:********
XEROUND_DATABASE_FAILOVER_PORT:     5990
XEROUND_DATABASE_FAILOVER_URL:      mysql://******************
XEROUND_DATABASE_FAILOVER_USERNAME: ***********
XEROUND_DATABASE_HOST:              *************.db.xeround.com.
XEROUND_DATABASE_INTERNAL_ADAPTER:  mysql
XEROUND_DATABASE_INTERNAL_HOST:     ***********
XEROUND_DATABASE_INTERNAL_NAME:     ***********
XEROUND_DATABASE_INTERNAL_PASSWORD: ***********
XEROUND_DATABASE_INTERNAL_PORT:     5990
XEROUND_DATABASE_INTERNAL_URL:      mysql://***********
XEROUND_DATABASE_INTERNAL_USERNAME: ***********
XEROUND_DATABASE_NAME:              ***********
XEROUND_DATABASE_PASSWORD:          ***********
XEROUND_DATABASE_PORT:              5990
XEROUND_DATABASE_URL:               mysql://***********
XEROUND_DATABASE_USERNAME:          ***********

上記のmysqlってなっている奴を全て「mysql2」に書き直します。
(全部やる必要があるかどうかは判りませんが、とりあえずやります。)

DATABASE_URL:                       mysql2://*******************
XEROUND_DATABASE_ADAPTER:           mysql2
XEROUND_DATABASE_FAILOVER_ADAPTER:  mysql2
XEROUND_DATABASE_FAILOVER_HOST:    **********.db.xeround.com.
XEROUND_DATABASE_FAILOVER_NAME:    **********
XEROUND_DATABASE_FAILOVER_PASSWORD:********
XEROUND_DATABASE_FAILOVER_PORT:     5990
XEROUND_DATABASE_FAILOVER_URL:      mysql2://******************
XEROUND_DATABASE_FAILOVER_USERNAME: ***********
XEROUND_DATABASE_HOST:              *************.db.xeround.com.
XEROUND_DATABASE_INTERNAL_ADAPTER:  mysql2
XEROUND_DATABASE_INTERNAL_HOST:     ***********
XEROUND_DATABASE_INTERNAL_NAME:     ***********
XEROUND_DATABASE_INTERNAL_PASSWORD: ***********
XEROUND_DATABASE_INTERNAL_PORT:     5990
XEROUND_DATABASE_INTERNAL_URL:      mysql2://***********
XEROUND_DATABASE_INTERNAL_USERNAME: ***********
XEROUND_DATABASE_NAME:              ***********
XEROUND_DATABASE_PASSWORD:          ***********
XEROUND_DATABASE_PORT:              5990
XEROUND_DATABASE_URL:               mysql2://***********
XEROUND_DATABASE_USERNAME:          ***********

3時間ぐらいハマったよォォォ

参考URL:
mysql - Using Ruby and XEROUND on Heroku - Stack Overflow