I have a situation where I need to access 2 databases to construct a certain data set. This is a ruby code using ActiveRecord gem. Not RAILS. I am dealing with legacy databases and developing an extraction script using Ruby.
From the first db
users = db1.table_db1.where("user_id in (?)", user_ids)
txn = db2.table_db2.all
After this I am referencing users
users.each do |user|
# do something
end
I get an exception as below when trying to execute the users.each.
If I am accessing the users variable prior to access the db2 then this problem no longer exist. Looks like this is related to eager load?
Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:303:in `query'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:303:in `block in execute'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract_adapter.rb:373:in `block in log'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activesupport-4.1.7/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract_adapter.rb:367:in `log'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:303:in `execute'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/mysql2_adapter.rb:228:in `execute'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/mysql2_adapter.rb:232:in `exec_query'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/mysql2_adapter.rb:240:in `select'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract/database_statements.rb:24:in `select_all'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/connection_adapters/abstract/query_cache.rb:70:in `select_all'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/querying.rb:39:in `find_by_sql'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation.rb:611:in `exec_queries'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation.rb:493:in `load'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation.rb:238:in `to_a'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation/delegation.rb:46:in `each'
file-exporter.rb:179:in `block (2 levels) in <main>'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation/delegation.rb:46:in `each'
/Users/devuser/.rvm/gems/ruby-2.1.2@global/gems/activerecord-4.1.7/lib/active_record/relation/delegation.rb:46:in `each'
Aucun commentaire:
Enregistrer un commentaire