每个模型不止一个数据库

时间:2011-06-10 15:31:21

标签: ruby-on-rails

class Service < ActiveRecord::Base

establish_connection(
  :adapter  => "mysql",
  :host     => "myip",
  :username => "myusername",
  :password => "mypassword",
  :database => "mydatabase"
)

end

这有效

Service.all #connects to mydatabase

但我需要这样的东西。

Service.use(mydatabase1).all #connects to mydatabase1
Service.use(mydatabase2).all #connects to mydatabase2

我怎样才能实现这个目标?

更新

数据库名称是动态的。我希望Service模型动态连接数据库。 当我输入Service.use(weeweweaszxc).all时,必须使用weeweweaszxc数据库。

1 个答案:

答案 0 :(得分:3)

试着看看这个问题。 How to best handle per-Model database connections with ActiveRecord?

他们像正常一样在database.yml文件中定义数据库,并在模型中调用它:

class AnotherDatabase < ActiveRecord::Base
  self.abstract_class = true
  establish_connection "anotherbase_#{RAILS_ENV}"
end

来自Priit's answer

的信息