class SimpleBackup::Utils::MySQL

Public Class Methods

new() click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 11
def initialize
  @host = 'localhost'
  @port = 3306
  @user = nil
  @pass = nil
end

Public Instance Methods

close() click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 28
def close
  @conn.close unless @conn.nil?
end
dump(db, tables, dumpfile) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 42
def dump(db, tables, dumpfile)
  cmd = "mysqldump --flush-logs --flush-privileges --order-by-primary --complete-insert -C -h #{@host} -u #{@user} -p#{@pass} #{db} #{tables.join(' ')} > #{dumpfile}"
  @@logger.debug "Running command: #{cmd}"
  `#{cmd}`
end
host(value) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 48
def host(value)
  @host = value
end
open() click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 18
def open
  return nil unless @conn.nil?

  @conn = Mysql2::Client.new(host: @host, port: @port, username: @user, password: @pass)
  @existing_dbs = []
  @conn.query("SHOW DATABASES").each do |row|
    @existing_dbs << row['Database']
  end
end
pass(value) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 60
def pass(value)
  @pass = value
end
port(value) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 52
def port(value)
  @port = value
end
scan_tables(db) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 32
def scan_tables(db)
  return nil unless @existing_dbs.include?(db)

  tables = []
  @conn.query("SHOW TABLES FROM `#{db}`").each do |row|
    tables << row["Tables_in_#{db}"]
  end
  tables
end
user(value) click to toggle source
# File lib/simple_backup/utils/mysql.rb, line 56
def user(value)
  @user = value
end