class BackupMongoS3::Db
Public Class Methods
new(options)
click to toggle source
# File lib/backup_mongo_s3/db.rb, line 4 def initialize(options) @options = options @connection_options = connection(options) end
Public Instance Methods
dump(db_name, backup_path)
click to toggle source
# 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)
click to toggle source
# 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
Private Instance Methods
connection(options)
click to toggle source
# File lib/backup_mongo_s3/db.rb, line 10 def connection(options) host = (options[:host].nil? || options[:host] == '') ? 'localhost' : options[:host] port = options[:port].nil? ? 27017 : options[:port] username = options[:username] password = options[:password] authentication_database = options[:authentication_database] auth_options = '' unless username.nil? || username == '' || password.nil? || password == '' auth_options = "-u '#{username}' -p '#{password}'" auth_options << " --authenticationDatabase '#{authentication_database}'" unless authentication_database.nil? || authentication_database == '' end "--host '#{host}' --port '#{port}' #{auth_options}" end