class DbVcs::Adapters::Mongo
Public Class Methods
config()
click to toggle source
@return [DbVcs::Adapters::Mongo::Config]
# File lib/db_vcs/adapters/mongo.rb, line 28 def config DbVcs.config.mongo_config end
connection()
click to toggle source
@return [Mongo::Client]
# File lib/db_vcs/adapters/mongo.rb, line 33 def connection @connection ||= begin require "mongo" ::Mongo::Client.new(config.mongo_uri) end end
copy_database(to_db, from_db)
click to toggle source
@param to_db [String] @param from_db [String] @return void
# File lib/db_vcs/adapters/mongo.rb, line 50 def copy_database(to_db, from_db) command = <<~SH #{config.mongodump_path} #{config.mongo_uri} --db="#{from_db}" --archive --quiet \ | #{config.mongorestore_path} #{config.mongo_uri} --archive --quiet --nsFrom='#{from_db}.*' --nsTo='#{to_db}.*' SH `#{command}` end
create_database(db_name)
click to toggle source
@param db_name [String] @return void
# File lib/db_vcs/adapters/mongo.rb, line 61 def create_database(db_name) # Mongodb databases should contain at least one collection connection.use(db_name).database.collection("_db_vcs").insert_one(_db_vcs: 1) end
db_exists?(db_name)
click to toggle source
@param db_name [String] @return [Boolean]
# File lib/db_vcs/adapters/mongo.rb, line 43 def db_exists?(db_name) list_databases.include?(db_name) end
drop_by_dbname(db_name)
click to toggle source
@param db_name [String] @return [void]
# File lib/db_vcs/adapters/mongo.rb, line 73 def drop_by_dbname(db_name) connection.use(db_name).database.drop end
list_databases()
click to toggle source
@return [Array<String>]
# File lib/db_vcs/adapters/mongo.rb, line 67 def list_databases connection.database_names end