Method: ActiveRecord::ConnectionAdapters::ConnectionPool#disconnect

Defined in:
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb

#disconnect(raise_on_acquisition_timeout = true) ⇒ Object

Disconnects all connections in the pool, and clears the pool.

Raises:

  • ActiveRecord::ExclusiveConnectionTimeoutError if unable to gain ownership of all connections in the pool within a timeout interval (default duration is spec.db_config.checkout_timeout * 2 seconds).



452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 452

def disconnect(raise_on_acquisition_timeout = true)
  with_exclusively_acquired_all_connections(raise_on_acquisition_timeout) do
    synchronize do
      @connections.each do |conn|
        if conn.in_use?
          conn.steal!
          checkin conn
        end
        conn.disconnect!
      end
      @connections = []
      @leases.clear
      @available.clear
    end
  end
end