【问题标题】:ActiveRecord: Connect to multiple databases one by oneActiveRecord:一一连接多个数据库
【发布时间】:2015-10-22 09:14:59
【问题描述】:

我需要确保备份服务器上存在不同数据库服务器上的记录。

我正在尝试使用 RSpec 将其作为 Sinatra 项目执行:

describe 'BACKUP' do
  puts 'BACKUP config'
  puts DB_CONFIG[:BACKUP].inspect
  p "Key.count #{Key.count}"
  DB_CONFIG[:databases].each do |server,config|
    p "****************************************************************"
    p "Server #{server} "
    p " Config #{config.inspect}"
    p  "Service.count #{Service.new(config).count}"
  end
end

地点:

class Key < BillingTables
end

class BillingTables < ActiveRecord::Base
  self.abstract_class = true
  establish_connection DB_CONFIG[:BACKUP]
end

连接到一个数据库。

另一方面,我正在使用此类同时连接到另一个数据库:

class Service < CoreTables
end

class CoreTables < ActiveRecord::Base
  self.abstract_class = true
  def initialize(params = {})
    establish_connection params
  end
end

这个脚本的输出如下:

=== Comparison Spec ===
backup config
{"adapter"=>"mysql2", "encoding"=>"utf8", "reconnect"=>true, "database"=>"backup", "pool"=>1, "username"=>"backup", "password"=>"password", "host"=>"xxx.xxx"}
"Key.count 3902"
"****************************************************************"
"Server a1 "
" Config {\"adapter\"=>\"mysql2\", \"encoding\"=>\"utf8\", \"reconnect\"=>true, \"database\"=>\"s1\", \"pool\"=>1, \"username\"=>\"s1\", \"password\"=>\"password\", \"host\"=>\"yyy.yyy\"}"  

/Users/password123/.rvm/gems/ruby-2.2.3/gems/activerecord-4.2.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:570:in `retrieve_connection': No connection pool for Service (ActiveRecord::ConnectionNotEstablished)

【问题讨论】:

    标签: mysql ruby activerecord rspec sinatra


    【解决方案1】:

    最后,我放弃了multipe active_records的想法,现在我只是在执行mysql连接

     begin
                client = Mysql2::Client.new DB_CONFIG[:databases][server]
                query = 'SELECT * FROM test'
                result = client.query(client.escape(query),symbolize_keys: true)
            rescue Exception => e
                p "query error #{e.message}"
                next
            end
    

    【讨论】:

      猜你喜欢
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多