繁体   English   中英

Rails-ActiveRecord从实例获取数据库名称

[英]Rails - ActiveRecord get database name from an Instance

我有一个分布在许多数据库中的模型。 这是一个例子:

class Timetablerange < ActiveRecord::Base
  self.table_name = "TimetableRange"

  def self.integration(integration)
    self.establish_connection(integration.to_sym)
    return self
  end

end

因此,当我想从一个数据库中获取一个实例时:

Timetablerange.integration(:integration_id).find(1)

我需要从实例获取database_name而不使用:

Timetable.connection.current_database

因为如果我使用它,它可能会有所不同:

instance_a = Timetablerange.integration(:integration_1).find(1)
instance_b = Timetablerange.integration(:integration_2).find(1)

此时为Timetable.connection.current_database =:integration_2,但从:integration_1加载了instance_a。

我尝试使用:

instance_a.connection_handler.connection_pools

并列出所有连接。 但是,现在我该如何从数据库中加载instance_a呢?

非常感谢你的帮助!

如果您使用的是mysql,则可能可以使用:

Timetable.connection.execute("select database()").first.first

其他数据库也可能会查询以获取当前数据库。

暂无
暂无

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

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