繁体   English   中英

使用ActiveRecord连接到多个数据库

[英]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。

因此,您需要问自己一些问题:

  • 我是否需要类似ORM的功能才能将数据库行映射到对象? 我需要CRUD操作吗?
  • 我是否需要持久连接,或者在请求后数据库连接消失,可以吗?
    • (当然,如果需要,您可以创建自己的池和持久连接)

如果您不需要CRUD操作提供类似ORM的功能,并且可以通过一些简单的操作来解决问题,并且如果您不需要持久连接,那么我建议您仅对数据库使用DB驱动程序。

HTH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM