Module: EDB::DBMS::MySQL

Defined in:
lib/edb/dbms/mysql.rb

Class Method Summary collapse

Class Method Details

.backup(dir_name) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 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