Class: BackupMongoS3::Db

Inherits:
Object
  • Object
show all
Defined in:
lib/backup_mongo_s3/db.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Db

Returns a new instance of Db.



4
5
6
7
# File 'lib/backup_mongo_s3/db.rb', line 4

def initialize(options)
  @options            = options
  @connection_options = connection(options)
end

Instance Method Details

#dump(db_name, backup_path) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/backup_mongo_s3/db.rb', line 28

def dump(db_name, backup_path)
  command = 'mongodump'
  command << " #{@connection_options}"
  command << ' --dumpDbUsersAndRoles' if @options[:dump_db_users_and_roles] == true || @options[:dump_db_users_and_roles] == 1
  command << " --db '#{db_name}' --out '#{backup_path}'"
  command << ' > /dev/null'

  system(command)
  raise "Error mongodump '#{db_name}'" unless $?.exitstatus.zero?
end

#restore(db_name, backup_path) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/backup_mongo_s3/db.rb', line 40

def restore(db_name, backup_path)
  command = 'mongorestore'
  command << " #{@connection_options}"
  command << ' --restoreDbUsersAndRoles' if @options[:restore_db_users_and_roles] == true || @options[:restore_db_users_and_roles] == 1
  command << ' --drop' if @options[:drop_collection] == true || @options[:drop_collection] == 1
  command << " --db '#{db_name}' '#{backup_path}'"
  command << ' > /dev/null'

  system(command)
  raise "Error mongorestore '#{db_name}'" unless $?.exitstatus.zero?
end