2016-09-21 25 views
1

シンプルなルビスクリプトがあります。
私はSqlServerとMysqlの接続が必要です。私はgem 'mysql2'接続が正常に接続されていますが、gem 'tiny_tds'と 'activerecord-sqlserver-adapter'が失敗しました。 私のエラー:SqlServerに接続するときに「UserActionEventの接続プールがありません」

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:570:in `retrieve_connection': No connection pool for UserActionEvent (ActiveRecord::ConnectionNotEstablished) 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/connection_handling.rb:113:in `retrieve_connection' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/connection_handling.rb:87:in `connection' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.7.1/lib/active_record/querying.rb:39:in `find_by_sql' 
    from D:/work/rails_obj/export_data/business/tear_bb.rb:49:in `main' 
    from export_data.rb:22:in `main' 
    from export_data.rb:28:in `<main>' 

私gemfile:

gem 'mysql2', '0.4.4' 
gem 'tiny_tds' 
gem 'activerecord-sqlserver-adapter' 
gem 'require_all', '1.3.3' 
gem 'activerecord', '~>4.2.1' 

私gemfile.lock:

GEM 
    remote: https://gems.ruby-china.org/ 
    specs: 
    activemodel (4.2.7.1) 
     activesupport (= 4.2.7.1) 
     builder (~> 3.1) 
    activerecord (4.2.7.1) 
     activemodel (= 4.2.7.1) 
     activesupport (= 4.2.7.1) 
     arel (~> 6.0) 
    activerecord-sqlserver-adapter (4.2.15) 
     activerecord (~> 4.2.1) 
    activesupport (4.2.7.1) 
     i18n (~> 0.7) 
     json (~> 1.7, >= 1.7.7) 
     minitest (~> 5.1) 
     thread_safe (~> 0.3, >= 0.3.4) 
     tzinfo (~> 1.1) 
    arel (6.0.3) 
    builder (3.2.2) 
    i18n (0.7.0) 
    json (1.8.3) 
    mini_portile2 (2.1.0) 
    minitest (5.9.0) 
    mysql2 (0.4.4-x64-mingw32) 
    require_all (1.3.3) 
    thread_safe (0.3.5) 
    tiny_tds (1.0.4-x64-mingw32) 
     mini_portile2 (~> 2.0) 
    tzinfo (1.2.2) 
     thread_safe (~> 0.1) 

PLATFORMS 
    x64-mingw32 

DEPENDENCIES 
    activerecord (~> 4.2.1) 
    activerecord-sqlserver-adapter 
    mysql2 (= 0.4.4) 
    require_all (= 1.3.3) 
    tiny_tds 

BUNDLED WITH 
    1.12.5 

私のコード:

class AnalyticsBase < ActiveRecord::Base 
    db_config = YAML::load File.open 'configs/sqlserver.yml' 
    establish_connection = db_config['Analytics'] 
    self.abstract_class = true 
end 

class UserActionEvent < AnalyticsBase 
    self.table_name = 'UserActionEvent' 
end 

class TearBb 
    def self.main 
    sql3 = "select top 5 * from UserActionEvent" 
    UserActionEvent.find_by_sql sql3 
    end 
end 

TearBb.main 

のconfigs/sqlserver.yml:

comm_config: &comm 
    adapter: sqlserver 
    encoding: utf8 
Analytics: 
    <<: *comm 
    host: myhost 
    port: myport 
    database: mydatabase 
    username: myusername 
    password: mypasword 
    timeout: 60000 

私のシステム:Windows 7私はこの問題に対処するにはどうすればよい

?感謝! ありがとう!

答えて

0

未使用の場合はここにあるが、それでも私はあなたが持っている問題は、あなたが(代わりにそれを割り当てるのに引数を渡すべきであるActiveRecord::Baseからestablish_connection方法(の使用に関連していると思います)

わから
establish_connection = db_config['Analytics'] 

はなるはずです。あなたが答えるため

establish_connection db_config['Analytics'] 
+0

おかげ 私はこの問題を放棄しなければならない – dodoliu

+0

私は理由を見つけるcant'tので。! – dodoliu

関連する問題