Class: PerconaMigrations::Runners::Percona

Inherits:
Base
  • Object
show all
Defined in:
lib/percona_migrations/runners/percona.rb

Constant Summary collapse

COMMAND =
'pt-online-schema-change'

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize, #log, #logger

Constructor Details

This class inherits a constructor from PerconaMigrations::Runners::Base

Class Method Details

.available?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/percona_migrations/runners/percona.rb', line 6

def self.available?
  !percona_command.empty?
end

.percona_commandObject



10
11
12
# File 'lib/percona_migrations/runners/percona.rb', line 10

def self.percona_command
  @percona_command ||= %x(which #{COMMAND}).chop
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/percona_migrations/runners/percona.rb', line 14

def run
  params = [
    PerconaMigrations.pt_schema_tool_args(options: @options),
    "--alter '#{@commands.join(', ')}'",
    "-h #{database_config['host']}",
    "-P #{database_config['port']}",
    "-u #{database_config['username']}",
    "D=#{database_config['database']},t=#{@table_name}"
  ]

  password = database_config['password']
  if password && !password.empty?
    params << "-p $PASSWORD"
  end

  run_command(params.reject(&:empty?).join(' '), { 'PASSWORD' => password })
end