blog.takuyan.com

Ruby & Javascript & Hack

rails3でmysql2が必要と言われた時の対処法


本日、突然以下のエラーに遭遇した。

!!! Missing the mysql2 gem. Add it to your Gemfile: gem 'mysql2'


まあ、gem install mysql2で終わりかと思っていたら、そんなことでは終わらず。

Please install the mysql2 adapter: 
`gem install activerecord-mysql2-adapter` (no such file to load ― active_record/connection_adapters/mysql2_adapter)


とか言われる羽目に。しかもgem install activerecord-mysql2-adapter無いし。
自力での回復を早々に諦めて、ぐぐる先生に聞くことにした。
そしたら案の定、先に遭遇している人たちがチラホラ。


API Only - Stack Exchange
Windows上で Ruby1.9.2 + Rails3 + SQLite or MySQL 環境を構築 - Everyleaf Lab

解決法


結局、上のリンク先の通りに修正した結果、動きました。とりあえずは。
問題は、なぜ、今日突然爆発したかなぁ。Gemfileで全ファイルバージョン指定しなきゃだめかな。
cap bundle:install が悪さしたかな、などと、今後原因を解明してみたい。

Gemfile
# gem 'mysql2'
gem 'ruby-mysql'
database.yml
production: 
  # ...
  host: 127.0.0.1 
  # ...

2011/01/18(追記)


犯人は、不用意にdeploy.rbに追加した"bundler/capistrano"でした。
解決すれば、mysql2が必要とか言われません。
それについてはまた後日。