module EDB::DBMS::MySQL

Public Class Methods

backup(dir_name) click to toggle source
# File lib/edb/dbms/mysql.rb, line 29
def backup(dir_name)
  db    = ::EDB.opts[:DBMS][:MySQL]
  files = {
    dump: File.join(dir_name, "#{db[:database]}.sql")
  }

  ::EDB::Logger.log(:info, "Dumping #{db[:database]}...")

  mysqldump = db[:binpath] && !db[:binpath].empty? ? File.join(db[:binpath], 'mysqldump') : 'mysqldump'

  args = %W{
    --user=#{db[:username]}
    --password=#{db[:password]}
    --single-transaction
    #{db[:database]} > #{files[:dump]}
  }.join(' ')

  Kernel.system "#{mysqldump} #{args}"

  files.values
end