[英]Connecting to multiple databases using ActiveRecord
我遇到我的应用需要按要求连接到数据库的情况。 数据库的数据模型是相同的,但是我需要并行连接到不同的数据库。 例如,我的RESTful路线可能看起来像这样
/database/:database_id/user/:user_id # Get user :user_id from database :database_id
我看过类似的问题,它们都建议使用ActiveRecord::Base#establish_connection
。 但是,这些问题似乎无法处理使用相同模型类同时访问多个数据库的情况。 我担心的是,我将收到一个请求,建立一个连接,开始从数据库中读取数据,但是随后会有一个新请求进入并更改ActiveRecord的连接。 这是合理的担心吗? 我正在使用Rails 3.0在Ruby 1.8.7上运行此代码。
谢谢。 -最大
因此,我面临着一个类似的问题,即连接必须是动态的。 建议不要使用ActiveRecord,而只使用db驱动程序。 就我而言,这是一个旧数据库,我不需要将记录转换成可以操纵并保存回数据库的对象,更多的是用于报告目的-我只需要汇总的结果查询(仅选择)。
对于这种情况,只需使用MySQL2 gem即可 。 这种方法使Rails可以对应用程序中的某些东西(我想要/需要ORM)持保留意见,但是当我真的只需要连接到任意数据库以获取一些快速数据时,就可以灵活地避免使用AR。
因此,您需要问自己一些问题:
如果您不需要CRUD操作提供类似ORM的功能,并且可以通过一些简单的操作来解决问题,并且如果您不需要持久连接,那么我建议您仅对数据库使用DB驱动程序。
HTH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.