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
This commit is contained in:
parent
b2c2d32908
commit
79887593c1
@ -116,7 +116,11 @@ def create(*arguments)
|
||||
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)
|
||||
|
@ -502,6 +502,19 @@ def test_pass_TEST_env_on_rake_test
|
||||
assert_match '1 runs, 1 assertions', output
|
||||
end
|
||||
|
||||
def test_rails_db_create_all_restores_db_connection
|
||||
create_test_file :models, 'account'
|
||||
output = Dir.chdir(app_path) { `bin/rails db:create:all db:migrate && echo ".tables" | rails dbconsole` }
|
||||
assert_match "ar_internal_metadata", output, "tables should be dumped"
|
||||
end
|
||||
|
||||
def test_rails_db_create_all_restores_db_connection_after_drop
|
||||
create_test_file :models, 'account'
|
||||
Dir.chdir(app_path) { `bin/rails db:create:all` } # create all to avoid warnings
|
||||
output = Dir.chdir(app_path) { `bin/rails db:drop:all db:create:all db:migrate && echo ".tables" | rails dbconsole` }
|
||||
assert_match "ar_internal_metadata", output, "tables should be dumped"
|
||||
end
|
||||
|
||||
def test_rake_passes_TESTOPTS_to_minitest
|
||||
create_test_file :models, 'account'
|
||||
output = Dir.chdir(app_path) { `bin/rake test TESTOPTS=-v` }
|
||||
|
Loading…
Reference in New Issue
Block a user