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