我正在构建一个Rails 4应用程序并试图为不同的模型建立单独的数据库。
例如;
- 用户模型将连接到192.168.1的数据库。 2
- 汽车模型将连接到192.168.1的数据库。 3
- 图书模型将连接到192.168.1的数据库。 4
我怎样才能做到这一点?我一直在寻找这个地方,但还没找到我想要的东西...... https://devcenter.heroku.com/articles/concurrency-and-database-connections
DBCharmer插件似乎是用'switch_connection_to'来做的但是它似乎每次都切换整个数据库连接并且不使用持久连接...
- >他们提到'establish_connection',但我无法弄清楚如何使用这个/:
感谢您的帮助!
仅供参考:这是使用Mysql btw,但我认为Sqlite或postgreSQL的解决方案可以以相同的方式工作。
修改
我在我的模型中测试了'establish_connection',这很有效。但我希望有更好的方法,因为在执行'rake db:migrate'时,db迁移不会被路由到正确的数据库
右?
所以,如果这是正确的,那么我应该手动将DB模式导出到另一个数据库中吗?
答案 0 :(得分:1)
您可以在development
中定义比production
,test
和database.yml
更多的数据库连接,例如除此之外:users_db_development
:
users_db_development:
host: 192.168.1.2
...
然后在您的模型(类)中执行:
class User < ActiveRecord::Base
establish_connection "users_db_#{Rails.env}"
end
这至少在Rails 3中起作用,也应该在4中工作。
答案 1 :(得分:0)
我也很想了解这个
您需要查看名为MultiTenancy - Wikipedia
的内容