class method self.new

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

self.new(...)

Initializes and connects a PostgreSQL adapter.

Parameters

... req
Source
# File activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb, line 386
      def initialize(...)
        super

        conn_params = @config.compact

        # Map ActiveRecords param names to PGs.
        conn_params[:user] = conn_params.delete(:username) if conn_params[:username]
        conn_params[:dbname] = conn_params.delete(:database) if conn_params[:database]

        # Forward only valid config params to PG::Connection.connect.
        valid_conn_param_keys = PG::Connection.conndefaults_hash.keys + [:requiressl]
        conn_params.slice!(*valid_conn_param_keys)

        @connection_parameters = conn_params

        @max_identifier_length = nil
        @type_map = nil
        @type_map_queried = false
        @raw_connection = nil
        @notice_receiver_sql_warnings = []
        @notice_receiver_fatal_error = nil

        @use_insert_returning = if @config.key?(:insert_returning)
          ActiveRecord.deprecator.warn(<<~MSG.squish)
            The `insert_returning` option in database configurations is deprecated
            and will be removed in Rails 9.0. The option only affects single-row
            INSERT statements; other paths such as `insert_all`, `upsert_all`, and
            RETURNING for `update` already use RETURNING when the database supports
            it, so the option cannot fully disable RETURNING.
          MSG
          self.class.type_cast_config_to_boolean(@config[:insert_returning])
        else
          true
        end
      end

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

Defined in ActiveRecord::ConnectionAdapters::PostgreSQLAdapter

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