recreate_database
上の問題はクリアしたけど、次はAdapterの問題に当たりました。DBはHSQLDBを使って test:units しようと思っているのですが、
undefined method `recreate_database' for #<ActiveRecord::ConnectionAdapters::JdbcAdapter:0x94b146>
ええー!?調べてみたらjdbc_hsqldb.rbには、メソッドが書いてない。マジすか。
recreate_databaseを呼んでいるのは、上の問題を解決した lib/tasks/jdbc_databases.rake#57。タスクとしては db:purge に当たるんだけど、元のdb:purge はというと ActiveRecord::Base.configurations["test"]["adapter"] 毎に何をするのかが違ってます。
まあでも、だいたいはDBごと消してもう一回作るっていうことをそれぞれの書き方でやっている。
とりあえず、jdbc_oracle.rbの真似して、こんなパッチを当ててみたら動いたっぽいっす。
module ::JdbcSpec module HSQLDB def recreate_database(name) tables.each{ |table| drop_table(table) } end end end