class ActiveRecord::Base
Public Class Methods
connect_to_master()
click to toggle source
# File lib/multi_db/active_record_patches.rb, line 21 def connect_to_master self.establish_connection(master_configuration) end
connect_to_organization(org = nil, set_env = false)
click to toggle source
# File lib/multi_db/active_record_patches.rb, line 25 def connect_to_organization(org = nil, set_env = false) org_code = org.is_a?(MultiDB::Organization) ? org.code : org org_code ||= ENV['RAILS_ORG'] || 'org1' config = ActiveRecord::Base.configurations[Rails.env] self.establish_connection(config.merge('database' => "#{config['database']}_#{org_code}")) begin ActiveRecord::Base.connection.tables rescue Mysql2::Error Rails.logger.error "Couldn't connect to org db for #{org_code}" return false end ENV['RAILS_ORG'] = org_code if set_env org_code end
connect_to_sessions()
click to toggle source
# File lib/multi_db/active_record_patches.rb, line 16 def connect_to_sessions config = configurations[Rails.env || 'development'] self.establish_connection(config) end
master_configuration(env = nil)
click to toggle source
# File lib/multi_db/active_record_patches.rb, line 5 def master_configuration(env = nil) env ||= Rails.env # use master db configuration in config/database.yml if present configurations["master_#{env}"] or Proc.new { c = configurations[env].dup c['database'] += '_master' c }.call end