マルチデータベース Rails 3 アプリケーションに取り組んでいます。各データベースには異なるスキーマがあります (本番環境では異なる場所にあります)。次のように、さまざまなデータベースと通信するようにアプリを設定しました。
データベース.yml
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: main_development
pool: 5
username: someuser
password: somepassword
socket: /tmp/mysql.sock
other_development:
adapter: mysql2
encoding: utf8
reconnect: false
database: other_development
pool: 5
username: someuser
password: somepassword
socket: /tmp/mysql.sock
models/other_base.rb
class OtherBase < ActiveRecord::Base
self.abstract_class = true
establish_connection "other_#{Rails.env}"
end
モデル/some_model.rb
class SomeModel < OtherBase
# Regular stuff here
end
現在、これは Web アプリでは問題なく機能しますが、テストを含む rake タスクの実行にはあまり適していません (フィクスチャが正しく読み込まれません)。これに利用できる宝石はありますか?どんな助けでも感謝します。
また、さまざまな DB のさまざまなスキーマを処理できる schema.rb ファイルを作成すると便利です。つまり、rake db:create または db:setup などを実行して、データベースを使用して複数のデータベースを作成することができます。 -固有のスキーマ。