Task not supported by 'jdbc'

jrubyでテストを実行しようとしたらjdbcはサポートされてないタスクだとか言われました。

rake aborted!
Task not supported by 'jdbc'

Turns out this is due to some hard coded values in the rails rake tasks. It has an easy fix by way of Ola Bini:


cd $JRUBY_HOME/lib/ruby/gems/1.8/gems/ActiveRecord-JDBC-0.3.1/lib
svn checkout svn://rubyforge.org/var/svn/jruby-extras/trunk/activerecord-jdbc/lib/tasks

This pulls down a file jdbc_databases.rake that I could only find in the subversion repository for now. Copy that file to the bookstore lib/tasks directory:


cp tasks/jdbc_databases.rake ~/jruby_stuff/bookstore/lib/tasks

ActiveRecord-JDBC用のタスクをアプリケーションのlib/tasksにコピーしてあげればOK。タスク自身は $JRUBY_HOME/lib/ruby/gems/1.8/gems/ActiveRecord-JDBC-0.x/lib にあります。

リンク先ではActiveRecord-JDBC-0.3.1の頃の話ですが、ActiveRecord-JDBC-0.5の現在ではSVNでチェックアウトしなくてもリリースされたパッケージの中に含まれているので、チェックアウトとかする必要ないっす。