Module: ActiveRecord::ConnectionHandling
- Defined in:
- lib/active_record/connection_adapters/redshift_adapter.rb
Overview
:nodoc:
Constant Summary collapse
- RS_VALID_CONN_PARAMS =
[:host, :hostaddr, :port, :dbname, :user, :password, :connect_timeout, :client_encoding, :options, :application_name, :fallback_application_name, :keepalives, :keepalives_idle, :keepalives_interval, :keepalives_count, :tty, :sslmode, :requiressl, :sslcompression, :sslcert, :sslkey, :sslrootcert, :sslcrl, :requirepeer, :krbsrvname, :gsslib, :service]
Instance Method Summary collapse
-
#redshift_connection(config) ⇒ Object
Establishes a connection to the database that’s used by all Active Record objects.
Instance Method Details
#redshift_connection(config) ⇒ Object
Establishes a connection to the database that’s used by all Active Record objects
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/active_record/connection_adapters/redshift_adapter.rb', line 28 def redshift_connection(config) conn_params = config.symbolize_keys conn_params.delete_if { |_, v| v.nil? } # 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. conn_params.keep_if { |k, _| RS_VALID_CONN_PARAMS.include?(k) } # The postgres drivers don't allow the creation of an unconnected PG::Connection object, # so just pass a nil connection object for the time being. ConnectionAdapters::RedshiftAdapter.new(nil, logger, conn_params, config) end |