Merge pull request #49106 from Shopify/reconnect-all
Fix `ActiveRecord.disconnect_all!` to not disable reconnect on pools
This commit is contained in:
commit
85ea227919
@ -22,7 +22,7 @@ def discard_pools!
|
||||
end
|
||||
|
||||
def disconnect_all!
|
||||
INSTANCES.each_key(&:disconnect!)
|
||||
INSTANCES.each_key { |c| c.disconnect!(automatic_reconnect: true) }
|
||||
end
|
||||
end
|
||||
|
||||
@ -44,7 +44,7 @@ def connection_name
|
||||
end
|
||||
end
|
||||
|
||||
def disconnect!
|
||||
def disconnect!(automatic_reconnect: false)
|
||||
ActiveSupport::ForkTracker.check!
|
||||
|
||||
return unless @pool
|
||||
@ -52,7 +52,7 @@ def disconnect!
|
||||
synchronize do
|
||||
return unless @pool
|
||||
|
||||
@pool.automatic_reconnect = false
|
||||
@pool.automatic_reconnect = automatic_reconnect
|
||||
@pool.disconnect!
|
||||
end
|
||||
|
||||
|
19
activerecord/test/cases/active_record_test.rb
Normal file
19
activerecord/test/cases/active_record_test.rb
Normal file
@ -0,0 +1,19 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "cases/helper"
|
||||
require "rack"
|
||||
|
||||
class ActiveRecordTest < ActiveRecord::TestCase
|
||||
unless in_memory_db?
|
||||
test ".disconnect_all! closes all connections" do
|
||||
ActiveRecord::Base.connection.active?
|
||||
assert_predicate ActiveRecord::Base, :connected?
|
||||
|
||||
ActiveRecord.disconnect_all!
|
||||
assert_not_predicate ActiveRecord::Base, :connected?
|
||||
|
||||
ActiveRecord::Base.connection.active?
|
||||
assert_predicate ActiveRecord::Base, :connected?
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue
Block a user