module ActiveRecord::ConnectionHandling

Public Instance Methods

percona_connection(config) click to toggle source

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

# File lib/active_record/connection_adapters/percona_adapter.rb, line 11
def percona_connection(config)
  mysql2_connection = mysql2_connection(config)

  config[:username] = 'root' if config[:username].nil?

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

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

  connection_options = { mysql_adapter: mysql2_connection }

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