就是同时连接两个数据库。
这个问题很好,之前我也打算连两个数据库,连两个数据库是可以的。 不过最终还是放弃了,放到一个数据库里。
一方面,业务上的关联性不是早期就能发现全的。越到后期你可能会越发现两个数据库里的数据都是互相依赖的。 这种情况坚决不适合拆成两个数据库。
可以拆成两个项目去做,用 API 或 RabbitMQ 消息进行通信。 这种情况你就不需要连两个数据库了。
不必连两个数据库。 根据我的经验,在连两个关系数据库的过程中,诸多不爽!建议放弃。 最大的阻力可能来自团队的其他成员,如果你自己认为正确,请顶住他们的压力。
一般是通过设置 database.yml 文件,比如
# 默认的
development:
*****
#其他的
other_name_development:
******
在 model 里面
class Post < ActiveRecord::Base
self.establish_connection "other_name_#{Rails.env}".to_sym
self.table_name = "posts" # 可选
self.inheritance_column = nil # 可选
end
这个你就可以正常链接另外一个数据库了,和正常使用 rails 的 model 一样。但是如果两个数据库表名是一样,你就需要另外取名,指定表名。
http://technology.customink.com/blog/2015/06/22/rails-multi-database-best-practices-roundup/ 这里有一点点东西,不过还是建议用三楼的方案,rabbitmq 靠谱。
楼主可以看看这个Rails Multi-Database Best Practices Roundup
文章涉及:
我自己是没细读了,目前没这类需求