【问题标题】:How to access multiple data sources in a single Ruby on Rails model?如何在单个 Ruby on Rails 模型中访问多个数据源?
【发布时间】:2016-06-08 03:07:39
【问题描述】:

我目前正在处理的应用程序要求我从单个模型中访问多个数据源。我想知道实现它的最佳方法是什么。我可以执行以下操作吗?

class SomeModel < ActiveRecord::Base
  establish_connection :data_source1
  # Get some data from data_source1 and store in a instance variable

  establish_connection :data_source2
  # Get some data from data_source2 and store in a instance variable
end

感谢您的建议。

【问题讨论】:

  • 这似乎是一个非常糟糕的主意。

标签: ruby-on-rails ruby database datasource


【解决方案1】:

正如@jvillian 所说,这是一个非常糟糕的主意。您需要的是两个不同的模型,每个模型都连接到各自的数据源,ActiveRecord 默认允许这样做。

那部分 can be a bit tricky 但不会混淆 ActiveRecord。

这里的大问题是它更喜欢在连接时缓存模式,并在整个进程的生命周期内保持模式。如果数据库以任何方式不同,您就会遇到混乱,而且如果您不断切换连接,您可能会完全搞乱事务规划器,它必须考虑哪些模型存在于哪个数据库中以进行回滚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多