aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2016-02-23 08:12:54 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2016-02-23 08:13:09 -0800
commit79887593c18919fed49f441d64236362cb755872 (patch)
treeac79183e1bf9d6ec978ced78f25bc38702a46bbd /activerecord
parentb2c2d32908beed678b087ec4ed735cc9ff87ad7a (diff)
downloadrails-79887593c18919fed49f441d64236362cb755872.tar.gz
rails-79887593c18919fed49f441d64236362cb755872.tar.bz2
rails-79887593c18919fed49f441d64236362cb755872.zip
reestablish previous connection after creating all databases
creating all databases mutates the connection pool. This patch restores the connection pool to the connection spec established before creating all databases. Fixes #23279
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/tasks/database_tasks.rb4
1 files changed, 4 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/tasks/database_tasks.rb b/activerecord/lib/active_record/tasks/database_tasks.rb
index 8f52e9068a..7dc41fa98c 100644
--- a/activerecord/lib/active_record/tasks/database_tasks.rb
+++ b/activerecord/lib/active_record/tasks/database_tasks.rb
@@ -116,7 +116,11 @@ module ActiveRecord
end
def create_all
+ old_pool = ActiveRecord::Base.connection_handler.retrieve_connection_pool(ActiveRecord::Base)
each_local_configuration { |configuration| create configuration }
+ if old_pool
+ ActiveRecord::Base.connection_handler.establish_connection(ActiveRecord::Base, old_pool.spec)
+ end
end
def create_current(environment = env)