ActiveRecordで上手くmysqlに接続できないなあと思っていろいろと調べた内容をまとめてみました。
※ただ、きちんと動作を行って検証したわけではないので、間違っている箇所がありましたら、コメント下さい。
mysqlとmysql2
ruby/mysqlに替わってmysql2が利用されるようになっているのは薄々気づいていたのですが、これって全くの別物なのですね。
それでもって、ActiveRecordでは3.0以降にmysql2を採用しているようですが、これがmysql2のバージョンによっては動かないわけで。
gemのそれぞれの最新リリースについて下記のサイトで確認しました。
http://rubygems.org/gems/mysql
http://rubygems.org/gems/mysql2
http://rubygems.org/gems/activerecord
ActiveRecord2.3、3.0、3.1ごとのmysql
ActiveRecordはそれぞれ3つの現行のリリースがありますが、それぞれで利用可能だと思われるmysqlのライブラリはこんな感じです。
ActiveRecord 2.3系 最新:2.3.14 mysql 最新:2.8.1
ActiveRecord 3.0系 最新:3.0.10 mysql2 最新:0.2.13
ActiveRecord 3.1系 最新:3.1.0.rc6 mysql2 最新:0.3.7
それぞれのバージョンはこちら
http://rubygems.org/gems/mysql2/versions/0.2.13
http://rubygems.org/gems/mysql2/versions/0.3.7
http://rubygems.org/gems/activerecord/versions/2.3.14
http://rubygems.org/gems/activerecord/versions/3.0.10
http://rubygems.org/gems/activerecord/versions/3.1.0.rc6
背景としては、ActiveRecordがRailsの一部であり、Rail新規バージョン(3.1)への移行直前であることが影響しているようですね。
http://rubyonrails.org/
gemメソッドでgemライブラリのバージョンを指定
http://aligach.net/diary/20090224.html
gemライブラリのバージョンを指定する方法
- インストール
gem install activerecord --version "2.3.14"
- バージョン指定
require "rubygems" gem "activerecord", "2.3.14" require "activerecord"
参考・ActiveRecord関連
・ActiveRecordとMySQL(英語)
http://rubylearning.com/satishtalim/ruby_activerecord_and_mysql.html
・ActiveRecordの概要
http://ja.wikipedia.org/wiki/Active_Record
・ActiveRecord3.0の詳細
http://www.atmarkit.co.jp/fcoding/rails/articles/rails3/03/rails303a.html
・Rails3.0開発環境
http://blog.pg1x.com/2011/06/01/現時点でのrails3-0-x開発を行うときの注意点まとめ