lib/mongoid/tasks/database.rake
# frozen_string_literal: true
# rubocop:todo all
namespace :db do
namespace :mongoid do
task :load_models do
::Mongoid.load_models
end
desc "Create collections for Mongoid models"
task :create_collections => [:environment, :load_models] do
::Mongoid::Tasks::Database.create_collections
end
desc "Create indexes specified in Mongoid models"
task :create_indexes => [:environment, :load_models] do
::Mongoid::Tasks::Database.create_indexes
end
desc "Create search indexes specified in Mongoid models"
task :create_search_indexes => [:environment, :load_models] do
wait = Mongoid::Utils.truthy_string?(ENV['WAIT_FOR_SEARCH_INDEXES'] || '1')
::Mongoid::Tasks::Database.create_search_indexes(wait: wait)
end
desc "Remove indexes that exist in the database but are not specified in Mongoid models"
task :remove_undefined_indexes => [:environment, :load_models] do
::Mongoid::Tasks::Database.remove_undefined_indexes
end
desc "Remove indexes specified in Mongoid models"
task :remove_indexes => [:environment, :load_models] do
::Mongoid::Tasks::Database.remove_indexes
end
desc "Remove search indexes specified in Mongoid models"
task :remove_search_indexes => [:environment, :load_models] do
::Mongoid::Tasks::Database.remove_search_indexes
end
desc "Shard collections with shard keys specified in Mongoid models"
task :shard_collections => [:environment, :load_models] do
::Mongoid::Tasks::Database.shard_collections
end
desc "Drop the database of the default Mongoid client"
task :drop => :environment do
::Mongoid::Clients.default.database.drop
end
desc "Drop all non-system collections"
task :purge => :environment do
::Mongoid.purge!
end
namespace :create_collections do
desc "Drop and create collections for Mongoid models"
task :force => [:environment, :load_models] do
::Mongoid::Tasks::Database.create_collections(force: true)
end
end
end
end