Sha256: 0a721c178ce597b5b90f82a4915e1fbb0b3e87d3526ef0d6b0fb8e7ea8722121
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
module EY module Backup class Mongodb < Engine register 'mongodb' def dump(database_name, basename) # Mongo dumps in directories. Compressing file = basename command = "mongodump --host #{host} -o #{file} --db #{database_name}; tar -cz #{file}" if gpg? command << " | " << GPGEncryptor.command_for(key_id) file << GPGEncryptor.extension end command << " > #{file}" run(command) file end def load(database_name, file) if database_exists?(database_name) cycle_database(database_name) else create_database(database_name) end command = "cat #{file}" if gpg? raise "Cannot load a GPG backup" end command << " | mongorestore --host #{host} --db #{database_name}" run(command) end def database_exists?(database_name) runs?("mongo --host #{host} --quiet --eval \"for each(var db in db.runCommand('listDatabases').databases) if(db.sizeOnDisk > 1) print(db.name);\" admin | grep '#{database_name}'") end def drop_database(database_name) runs?("mongo --host #{host} #{database_name} --quiet --eval 'printjson(db.dropDatabase());'") end def create_database(database_name) runs?("mongo --host #{host} #{database_name} --quiet --eval 'db.createCollection('ey_backup');'") end def cycle_database(database_name) drop_database(database_name) create_database(database_name) end def suffix /\.(gz)$/ end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ey_cloud_server-1.4.28 | lib/ey_backup/engines/mongodb_engine.rb |
ey_cloud_server-1.4.28.pre | lib/ey_backup/engines/mongodb_engine.rb |