lib/tasks/elastics.rake
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