Module: ActiveRecord::ConnectionHandling

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

Instance Method Summary collapse

Instance Method Details

#percona_connection(config) ⇒ Object

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



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/active_record/connection_adapters/percona_adapter.rb', line 12

def percona_connection(config)
  if config[:username].nil?
    config = config.dup if config.frozen?
    config[:username] = 'root'
  end
  mysql2_connection = mysql2_connection(config)

  connection_details = Departure::ConnectionDetails.new(config)
  verbose = ActiveRecord::Migration.verbose
  sanitizers = [
    Departure::LogSanitizers::PasswordSanitizer.new(connection_details)
  ]
  percona_logger = Departure::LoggerFactory.build(sanitizers: sanitizers, verbose: verbose)
  cli_generator = Departure::CliGenerator.new(connection_details)

  runner = Departure::Runner.new(
    percona_logger,
    cli_generator,
    mysql2_connection
  )

  connection_options = { mysql_adapter: mysql2_connection }

  ConnectionAdapters::DepartureAdapter.new(
    runner,
    logger,
    connection_options,
    config
  )
end