mysql - ActiveRecord:一一连接多个数据库

标签 mysql ruby activerecord rspec sinatra

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

我正在尝试使用 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)

最佳答案

最后放弃了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

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

相关文章:

mysql - 基于内容或 View 创建表格更好?

php - 如何根据变量的值对列表进行排序? (php)

mysql - 即使列名相同并且具有单个匹配列,自然连接查询也会返回零结果

ruby - Clockwork需要自己的进程吗?

mysql - 获取没有偏移量的日期

mysql - rails是否支持mysql json数据类型

mysql - WampServer mySQL

Ruby:仅在某些情况下重载运算符行为

Ruby - 这个输出是什么

ruby-on-rails - Rails 中的 ActiveRecord::RecordNotFound 救援