Railsで複数DBでのマイグレーションをやりたい

/db/migrate/01_create_hoge.rb
/db/migrate/02_create_foo.rb
/db/migrate/03_add_boke_to_hoge.rb
/db/migrate/04_create_ahya.rb

というように、migrationのタスク?群があった時に、04_create_ahya.rbだけを01〜03とは違うDBに適用したい。


そこで、database.ymlに

uhyo_db:
adapter: mysql
database: uhyo
username: uhyohyo
password: uhyohyohyohyo
host: localhost
encoding : utf8

と新しいDBを定義して


04_create_ahya.rbの先頭に

ActiveRecord::Base.establish_connection(:uhyo_db)

と書いて

rake migrate

すると、新しいDBにはschema_infoがありませんよと怒られる。たしかに、01番のマイグレイションからやってないからないはずだ。


そこで

create table schema_info(version integer default 0);
insert in schema_info(version)values(0);

として、versionカラムを作ってやる。


すると、migrationは成功したのだが、:uhyo_dbにも01〜03までのマイグレーションが適用されてしまった。


うげー。


元々Railsは複数DBを使うことは推奨してないのでしょうがないのだけど、うまい手ないのかなぁ。


とりあえず、一旦あきらめて一つのDBでやってみる。なんか負けた気分。


[参照]
http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations
http://wiki.rubyonrails.org/rails/pages/UsingMigrations