class PerconaMigrations::Runners::Percona
Constants
- COMMAND
Public Class Methods
available?()
click to toggle source
# File lib/percona_migrations/runners/percona.rb, line 6 def self.available? !percona_command.empty? end
percona_command()
click to toggle source
# File lib/percona_migrations/runners/percona.rb, line 10 def self.percona_command @percona_command ||= %x(which #{COMMAND}).chop end
Public Instance Methods
run()
click to toggle source
# 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
Private Instance Methods
database_config()
click to toggle source
# File lib/percona_migrations/runners/percona.rb, line 34 def database_config PerconaMigrations.database_config end
run_command(params, env_vars = {})
click to toggle source
# File lib/percona_migrations/runners/percona.rb, line 38 def run_command(params, env_vars = {}) %w(dry-run execute).each do |mode| cmd = "#{self.class.percona_command} #{params} --#{mode}" log "Running percona command: \"#{cmd}\"" unless system(env_vars, cmd) raise "Percona command failed: #{$?}" end end end