我有一个分布在许多数据库中的模型。这是一个例子:
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
其他数据库也可能会查询以获取当前数据库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句