使用ActiveRecord连接到未知数量的数据库

时间:2015-08-17 17:18:15

标签: ruby activerecord

我正在编写一个ruby脚本,需要连接到主数据库才能检索要连接的辅助数据库列表。我需要执行的步骤是:

  1. 连接到主数据库
  2. 检索要连接的辅助数据库列表
  3. 遍历辅助数据库列表,从每个数据库中提取单个模型
  4. 我不需要同时连接到多个辅助数据库,因此打开 - >检索对象 - >关闭很好。

    到目前为止,我所看到的所有示例都描述了数据库在database.yml中描述的多个连接,这在这里是不可能的,因为我需要连接的数据库的数量可能会有所不同。

    blog post描述了使用连接池,如下所示:

    spec = database_a
    ActiveRecord::ConnectionPool.open(spec) do |conn|
      User.find_all
    end
    
    spec = database_b
    ActiveRecord::ConnectionPool.open(spec) do |conn|
      User.find_all
    end
    

    但是,ConnectionPool似乎已更改,.open方法已不再存在。

    我很感激任何指示。

1 个答案:

答案 0 :(得分:0)

问题在于:

[1] pry(main)> ActiveRecord::ConnectionPool
NameError: uninitialized constant ActiveRecord::ConnectionPool

ActiveRecord::ConnectionPool不存在。然而,在我找到它的旅程中,我找到了ActiveRecord::ConnectionAdapters::ConnectionPool,它看起来像你想要的东西。