class DbAgent::DbHandler::MySQL

Public Instance Methods

backup() click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 14
def backup
  datetime = Time.now.strftime('%Y%m%dT%H%M%S')
  shell mysqldump(config[:database], "> #{backup_folder}/backup-#{datetime}.sql")
end
create() click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 6
def create
  raise
end
drop() click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 10
def drop
  raise
end
repl() click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 19
def repl
  shell mysql(config[:database])
end
restore(_t, args) click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 29
def restore(_t, args)
  candidates = backup_folder.glob('*.sql').sort
  if args[:pattern] && rx = Regexp.new(args[:pattern])
    candidates = candidates.select { |f| f.basename.to_s =~ rx }
  end
  file = candidates.last
  shell mysql(config[:database], '<', file.to_s)
end
spy() click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 23
def spy
  jdbc_jar = (Path.dir.parent / 'vendor').glob('mysql*.jar').first
  system %(java -jar vendor/schemaSpy_5.0.0.jar -dp #{jdbc_jar} -t mysql -host #{config[:host]} -u #{config[:user]} -p #{config[:password]} -db #{config[:database]} -s public -o #{schema_folder}/spy)
  system %(open #{schema_folder}/spy/index.html)
end

Private Instance Methods

mysql(*args) click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 45
def mysql(*args)
  mysql_cmd('mysql', *args)
end
mysql_cmd(cmd, *args) click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 40
def mysql_cmd(cmd, *args)
  conf = config
  %(#{cmd} -h #{config[:host]} --password=#{config[:password]} -P #{config[:port]} -u #{config[:user]} #{args.join(' ')})
end
mysqldump(*args) click to toggle source
# File lib/db_agent/db_handler/mysql.rb, line 49
def mysqldump(*args)
  mysql_cmd('mysqldump', *args)
end