Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shender/rails 4.2 test env db creation fix #38

Merged
5 commits merged into from
Feb 4, 2015

Conversation

ghost
Copy link

@ghost ghost commented Feb 3, 2015

I was having problems with creating DBs in the test environment. Now the 'drop' and 'create' are consistent.

➜  zendesk_voyager git:(shender/multi_shard_tests) RAILS_ENV=test be rake db:test:purge --trace
** Invoke db:test:purge (first_time)
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:test:purge
** Invoke db:drop (first_time)
** Invoke db:load_config
** Execute db:drop
** Invoke db:create (first_time)
** Invoke db:load_config
** Execute db:create
Unknown database 'voyager_test_main'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:22:in `rescue in mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:10:in `mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/zendesk_database_support-1.11.0/lib/zendesk_database_support/fix_mysql2_symbolized_keys.rb:7:in `mysql2_connection_with_symbolize_keys'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:436:in `new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:446:in `checkout_new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_host_pool-0.8.1/lib/active_record_host_pool/pool_proxy.rb:37:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:565:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:87:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:93:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:41:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `block (2 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:84:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `load'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `<main>'
Couldn't create database for {"adapter"=>"mysql2", "username"=>"root", "host"=>"127.0.0.1", "port"=>3306, "password"=>nil, "database"=>"voyager_test_main", "shard_names"=>[1, 2, 3, 4]}
Unknown database 'voyager_test_main'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:22:in `rescue in mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:10:in `mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/zendesk_database_support-1.11.0/lib/zendesk_database_support/fix_mysql2_symbolized_keys.rb:7:in `mysql2_connection_with_symbolize_keys'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:436:in `new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:446:in `checkout_new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_host_pool-0.8.1/lib/active_record_host_pool/pool_proxy.rb:37:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:565:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:87:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:93:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:41:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `block (2 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:84:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `load'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `<main>'
Couldn't create database for {"adapter"=>"mysql2", "username"=>"root", "host"=>"127.0.0.1", "port"=>3306, "password"=>nil, "database"=>"voyager_test_global_uids"}
Unknown database 'voyager_test_main'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:22:in `rescue in mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/mysql2_adapter.rb:10:in `mysql2_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/zendesk_database_support-1.11.0/lib/zendesk_database_support/fix_mysql2_symbolized_keys.rb:7:in `mysql2_connection_with_symbolize_keys'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:436:in `new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:446:in `checkout_new_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_host_pool-0.8.1/lib/active_record_host_pool/pool_proxy.rb:37:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:565:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:87:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:8:in `connection'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/mysql_database_tasks.rb:16:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/activerecord-4.2.0/lib/active_record/tasks/database_tasks.rb:93:in `create'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:41:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:35:in `block (2 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/active_record_shards-3.3.5/lib/active_record_shards/tasks.rb:84:in `block (3 levels) in <top (required)>'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `call'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:241:in `block in execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:236:in `execute'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:180:in `block in invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:173:in `invoke_with_call_chain'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/opt/boxen/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `load'
/opt/boxen/rbenv/versions/2.1.5/bin/rake:23:in `<main>'
Couldn't create database for {"database"=>"voyager_test_s1", "adapter"=>"mysql2", "username"=>"root", "host"=>"127.0.0.1", "port"=>3306, "password"=>nil, "shard_names"=>[1, 2, 3, 4]}
...
...

/cc @gabetax @osheroff @staugaard @grosser @bquorning

References

  • Jira link:

Risks

  • None

@@ -4,16 +4,22 @@
Rake::Task[name].clear
end

def env_name
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's not define overly generic global methods -> static class methods

module ActiveRecordShards
  module Tasks
    def self.env_name
      ....
    end
  end
end

@grosser
Copy link
Contributor

grosser commented Feb 3, 2015

logic looks good to me, a little confused on why nobody ran into this before ... it's what vanilla rails does too so 👍

ActiveRecord::Base.configurations.each do |key, conf|
if key.starts_with?(env_name) && !key.ends_with?("_slave")
begin
if ActiveRecord::VERSION::MAJOR >= 4
connection = ActiveRecord::Base.send("#{conf['adapter']}_connection", conf.merge('database' => nil))
connection.drop_database(conf['database'])
root_connection(conf).drop_database(conf['database'])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, nice approach. I've banged my head on the right way to do this without completely side-stepping active record, this is pretty decent. 👍 after grosser's review fixes.

Use .include? instead of .match.
Change output from stderr to stdout.
@ghost
Copy link
Author

ghost commented Feb 4, 2015

@grosser
Can you verify that what I did with namespacing the env_name method was what you intended?

module ActiveRecordShards
module Tasks
def self.env_name
ActiveRecordShards.rails_env || 'development'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe ActiveRecordShards.rails_env could already include the || 'development'

@grosser
Copy link
Contributor

grosser commented Feb 4, 2015

👍

@ghost
Copy link
Author

ghost commented Feb 4, 2015

Made the final change @grosser , and will merge in when Travis comes back with the go-ahead. Thanks!

@@ -51,6 +51,7 @@ def self.rails_env
env = Rails.env if defined?(Rails.env)
env ||= RAILS_ENV if Object.const_defined?(:RAILS_ENV)
env ||= ENV['RAILS_ENV']
env ||= 'development'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good change since we also call .dup on it :D

@grosser
Copy link
Contributor

grosser commented Feb 4, 2015

👍

ghost pushed a commit that referenced this pull request Feb 4, 2015
…ation_fix

Shender/rails 4.2 test env db creation fix
@ghost ghost merged commit de60bca into master Feb 4, 2015
@ghost
Copy link
Author

ghost commented Feb 4, 2015

merged!

@bquorning bquorning deleted the shender/rails_4.2_test_env_db_creation_fix branch December 17, 2015 12:22
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants