Module: ArJdbc::PostgreSQLConfig

Included in:
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter
Defined in:
lib/arjdbc/postgresql/adapter_hash_config.rb

Instance Method Summary collapse

Instance Method Details

#build_connection_config(config) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/arjdbc/postgresql/adapter_hash_config.rb', line 5

def build_connection_config(config)
  config = config.deep_dup

  load_jdbc_driver

  config[:driver] ||= database_driver_name

  host = (config[:host] ||= config[:hostaddr] || ENV["PGHOST"] || "localhost")
  port = (config[:port] ||= ENV["PGPORT"] || 5432)
  database = config[:database] || config[:dbname] || ENV["PGDATABASE"]

  app = config[:application_name] || config[:appname] || config[:application]

  config[:url] ||= if app
                     "jdbc:postgresql://#{host}:#{port}/#{database}?ApplicationName=#{app}"
                   else
                     "jdbc:postgresql://#{host}:#{port}/#{database}"
                   end

  config[:url] << config[:pg_params] if config[:pg_params]

  config[:username] ||= config[:user] || ENV["PGUSER"] || ENV_JAVA["user.name"]
  config[:password] ||= ENV["PGPASSWORD"] unless config.key?(:password)

  config[:properties] = build_properties(config)

  config
end