# 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