Class: BackupFoundation::Item::MySQL

Inherits:
Base
  • Object
show all
Defined in:
lib/backup_foundation/item/mysql.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#decrypt_if_needed_and_restore, #dump_and_encrypt_if_needed, #initialize, #outfile_path, #output_to_file

Constructor Details

This class inherits a constructor from BackupFoundation::Item::Base

Class Method Details

.exist?(rails_env = nil) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
# File 'lib/backup_foundation/item/mysql.rb', line 5

def exist?(rails_env=nil)
  defined?(ActiveRecord::Base) &&
  ActiveRecord::Base.configurations &&
  ActiveRecord::Base.configurations[rails_env] &&
  %w(mysql mysql2 mysql2spatial).include?(ActiveRecord::Base.configurations[rails_env]['adapter'])
end

.get_config(rails_env = nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/backup_foundation/item/mysql.rb', line 12

def get_config(rails_env=nil)
  config = ActiveRecord::Base.configurations[rails_env]
  {
    host: config['host'],
    port: config['port'],
    user: config['username'],
    password: config['password'],
    database: config['database'],
    socket: config['socket']
  }
end

Instance Method Details

#command_paramsObject



29
30
31
32
33
34
# File 'lib/backup_foundation/item/mysql.rb', line 29

def command_params
  [:host, :port, :socket, :user, :password].map do |option|
    next if @options[option].blank?
    "--#{option}='#{@options[option]}'"
  end.compact.join ' '
end

#load_dump(infile_path) ⇒ Object



36
37
38
# File 'lib/backup_foundation/item/mysql.rb', line 36

def load_dump(infile_path)
  decrypt_if_needed_and_restore "mysql #{command_params} #{@options[:database]}", infile_path
end

#save_dump(tmpdir) ⇒ Object



25
26
27
# File 'lib/backup_foundation/item/mysql.rb', line 25

def save_dump(tmpdir)
  dump_and_encrypt_if_needed "mysqldump #{command_params} --single-transaction #{@options[:database]}"
end