namespace 'elastics' do
task :load_config do |task, args| [:environment, 'db:load_config'].each do |dep| Rake::Task[dep].invoke if Rake::Task.task_defined?(dep) end @elastics_options = { version: ENV['version'] || :current, reindex: !ENV.key?('no_reindex'), drop: !ENV.key?('no_drop'), types: ENV['types'] && ENV['types'].split(',').map(&:strip), indices: args.extras.empty? ? nil : args.extras } Elastics::Tasks.verbose = ENV.fetch('VERBOSE', 'true') == 'true' end desc 'Drop administrative index' task :purge, [:keep_data] => :load_config do |task, args| Elastics::Tasks.purge args[:keep_data] end desc 'Creates indices' task create: :load_config do Elastics::Tasks.create_indices @elastics_options end desc 'Drops indices' task drop: :load_config do Elastics::Tasks.drop_indices @elastics_options end desc 'Creates indices and applies mappings. Full migration when param is present' task migrate: :load_config do Elastics::Tasks.migrate @elastics_options end task migrate!: :load_config do Elastics::Tasks.migrate! @elastics_options end desc 'Reindex' task reindex: :load_config do Elastics::Tasks.reindex @elastics_options end
end