instance method reconnect!

Ruby on Rails edge

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.11.3 v5.0.7.2 v5.1.7 v5.2.8.1 v6.0.6.1 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3.2 v8.0.5.1 v8.1.3.1 edge

Signature

reconnect!(restore_transactions: false)

Disconnects from the database if already connected, and establishes a new connection with the database. Implementors should define private #reconnect instead.

Parameters

restore_transactions key = false
Source
# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 743
      def reconnect!(restore_transactions: false)
        budget = build_retry_budget(allow_retry: true, reconnectable: false)

        @lock.synchronize do
          attempt_configure_connection do
            @allow_preconnect = false

            reconnect
            @needs_reconnect = false

            enable_lazy_transactions!
            @raw_connection_dirty = false
            @last_activity = @connected_since = Process.clock_gettime(Process::CLOCK_MONOTONIC)
            @verified = true
            @allow_preconnect = true

            reset_transaction(restore: restore_transactions) do
              clear_cache!(new_connection: true)
              configure_connection
            end
          rescue => original_exception
            translated_exception = translate_exception_class(original_exception, nil, nil)

            if retryable_connection_error?(translated_exception) && budget.consume
              backoff(budget.attempts_used)
              retry
            end

            raise translated_exception
          end
        end
      end

Defined in activerecord/lib/active_record/connection_adapters/abstract_adapter.rb line 743 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::AbstractAdapter

Type at least 2 characters to search.

Use the arrow keys to navigate results, Enter to open one, Escape to close.

Keyboard shortcuts

/
Focus search
⌘K / Ctrl-K
Command palette
?
This help
Esc
Close