class Morse::MysqlDump
Constants
- ARCHIVE_FILE_REGEX
- DUMP_DIR
- DUMP_FILE_REGEX
Attributes
archive_file[R]
dump_file[R]
Public Class Methods
new()
click to toggle source
# File lib/morse_mysql_dump.rb, line 23 def initialize return self if load_db_config and prepare_dump_paths nil end
Public Instance Methods
clean!()
click to toggle source
# File lib/morse_mysql_dump.rb, line 12 def clean! FileUtils.rm_rf @temp_dir true rescue false end
dump!()
click to toggle source
# File lib/morse_mysql_dump.rb, line 36 def dump! FileUtils.mkdir_p @temp_dir system dump_command if File.exists? @dump_file # temporary changes pwd Dir.chdir(@temp_dir) { |path| system tar_command } return File.exists?(@archive_file) ? @archive_file : nil end end
fake_rails_env()
click to toggle source
# File lib/morse_mysql_dump.rb, line 19 def fake_rails_env { database: '', username: '', password: '' } end
rails_env()
click to toggle source
# File lib/morse_mysql_dump.rb, line 32 def rails_env rails_env ||= defined?(Rails) ? Rails.env : fake_rails_env end
rails_root()
click to toggle source
# File lib/morse_mysql_dump.rb, line 28 def rails_root defined?(Rails) ? Rails.root : '/tmp' end
Private Instance Methods
dump_command()
click to toggle source
# File lib/morse_mysql_dump.rb, line 74 def dump_command cmd = "mysqldump #{@mysql_database}" cmd << " -u #{@mysql_user}" cmd << " -p#{@mysql_password}" if @mysql_password.present? cmd << " > #{@dump_file}" return cmd end
load_db_config()
click to toggle source
# File lib/morse_mysql_dump.rb, line 49 def load_db_config db_conf_file = File.join(rails_root, "/config/database.yml") @db_config = YAML::load(IO.read(db_conf_file)) @mysql_database = @db_config[rails_env]["database"] @mysql_user = @db_config[rails_env]["username"] @mysql_password = @db_config[rails_env]["password"] true rescue false end
prepare_dump_paths()
click to toggle source
# File lib/morse_mysql_dump.rb, line 60 def prepare_dump_paths time_str = Time.now.strftime('%d.%m.%y_%H.%M.%S') @temp_dir = File.join(rails_root, DUMP_DIR) @dump_file_name = "dump_#{time_str}.sql" @dump_file = File.join(@temp_dir, @dump_file_name) @archive_file_name = "dump_#{time_str}.tar.gz" @archive_file = File.join(@temp_dir, @archive_file_name) true rescue false end
tar_command()
click to toggle source
# File lib/morse_mysql_dump.rb, line 82 def tar_command "tar czf #{@archive_file_name} #{@dump_file_name}" end