ruby-on-rails - 多数据库连接

标签 ruby-on-rails ruby

我正在尝试了解连接到我的数据库的最佳方式。

目前我有一个解析 URL 的方法(取决于调用的 URL,应用程序必须连接到不同的数据库,比如 customer1.example.com 将连接到 customer1 数据库)并调用

ActiveRecord::Base.establish_connection(conn_string)

其中 conn_string 包含数据库的名称。

这个方法 (set_db) 被调用

before_filter :set_db

在我的应用程序 Controller 中,基本上对于我收到的每个请求,都会解析 URL 并且应用程序会尝试建立连接。

我想知道我是否可以在某个地方有一个连接池....你对此有什么建议吗?拥有一个保持所有连接并返回正确连接的单例是否更好?

谢谢! 罗伯托

最佳答案

数据库是否在同一台服务器上?

我有一个应用程序,其中一些模型对象来自一个数据库,而其他模型对象来自不同的数据库。我重写了 table_name 函数来指定数据库。如果它们是不同的服务器,则将不起作用,但将适用于同一服务器中的不同数据库。

class xx < ActiveRecord.base

def self.table_name
  "otherdatabase.table"
end

看起来数据库池可能正在用于即将发布的 rails 版本。

What's New In Edge Rails

关于ruby-on-rails - 多数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/167053/

相关文章:

ruby-on-rails - 更改回形针附件上集成测试的路径

Ruby:使用 Mechanize 访问我的表单时出现问题!

ruby-on-rails - before_filter set_locale 除了 Controller

ruby-on-rails - 无法理解 Rails 中符号的使用

ruby-on-rails - 调用 destroy 方法会出现错误 - undefined method `name' for nil :NilClass - Rails 4

ruby-on-rails - 当两个事物相等时,RSpec eq 匹配器返回失败

Ruby activerecord 两个表与 ActiveRecord 的外连接

ruby-on-rails - 如何在不递归的情况下维护父子中的缓存属性?

ruby-on-rails - rails 在 session 中存储密码

ruby-on-rails - 命名空间模型中的 Rails 关联