Class: Container::Backup::Mysql

Inherits:
Directories show all
Defined in:
lib/container/steps/databases.rb

Instance Method Summary collapse

Methods inherited from Directories

#backup_volume, #recover_volume, #remove_volume, #start, #stop, #tar_volume

Methods inherited from Step

#backup_path, #container, #image, #initialize, #params, #perform

Constructor Details

This class inherits a constructor from Container::Backup::Step

Instance Method Details

#backupObject



5
6
7
8
9
10
# File 'lib/container/steps/databases.rb', line 5

def backup
  #  eval "ssh ru-dm.aegean.gr 'mysqldump --force --routines -h localhost -u root -p$mysql_root_password ele > ele_dev.sql'"
  #eval "ssh ru-vm2.aegean.gr 'scp ru-dm.ru.aegean.gr:~/ele_dev.sql /tmp/ele_dev.sql'"
  mkdir_p(backup_path)
  sh "docker exec #{container} sh -c 'mysqldump --force --routines -h localhost -u root -p#{params['password']} #{params['db']} > /#{backup_path}/#{params['db']}.sql'"
end

#restoreObject



11
12
13
14
15
16
# File 'lib/container/steps/databases.rb', line 11

def restore
  # user == db
  sh "docker exec #{container} sh -c 'echo \"DROP USER \'#{params['db']}\'@'%\' ;DROP DATABASE #{params['db']};\" | mysql -u root -p#{params['password']}'"
  sh "docker exec #{container} sh -c 'echo \"CREATE DATABASE #{params['db']};CREATE USER \'#{params['user']}\'@\'%\' IDENTIFIED BY \'#{params['password']}\';GRANT ALL PRIVILEGES ON *.* TO \'#{params['user']}\'@\'%\';FLUSH PRIVILEGES;\" | mysql -u root -p#{params['password']}'"
  sh "docker exec #{container} sh -c 'mysql -u root -p#{params['password']} #{params['db']} < /#{backup_path}/#{params['db']}.sql'"
end