Module: ActiveRecord::ConnectionHandling

Defined in:
lib/active_record/connection_adapters/hanaclient_adapter.rb

Instance Method Summary collapse

Instance Method Details

#hanaclient_connection(config) ⇒ Object

Establishes a connection to the database that’s used by all Active Record objects



47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/active_record/connection_adapters/hanaclient_adapter.rb', line 47

def hanaclient_connection(config)
  HA.dbcapi_path = config[:dbcapi_path]

  db = HA.instance.api.hanaclient_new_connection()

  connection_string = "SERVERNODE=#{config[:server]}"
  connection_string += ":#{config[:port]}" if config[:port]
  connection_string += ";UID=#{config[:username]};PWD=#{config[:password]};"
  connection_string += "DATABASENAME=#{config[:database]};" if config[:database]
  # overrides the database option in connection properties if the database option is explicity given
  connection_string += (config[:database] ? config[:connection_properties].gsub(/databasename=[^;]*;/i, "") : config[:connection_properties]) if config[:connection_properties]

  ConnectionAdapters::HanaclientAdapter.new(db, logger, connection_string, config)
end