searchkick.rake
980 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
namespace :searchkick do
desc "reindex a model (specify CLASS)"
task reindex: :environment do
class_name = ENV["CLASS"]
abort "USAGE: rake searchkick:reindex CLASS=Product" unless class_name
model =
begin
Searchkick.load_model(class_name)
rescue Searchkick::Error => e
abort e.message
end
puts "Reindexing #{model.name}..."
model.reindex
puts "Reindex successful"
end
namespace :reindex do
desc "reindex all models"
task all: :environment do
# eager load models to populate Searchkick.models
if Rails.respond_to?(:autoloaders) && Rails.autoloaders.zeitwerk_enabled?
# fix for https://github.com/rails/rails/issues/37006
Zeitwerk::Loader.eager_load_all
else
Rails.application.eager_load!
end
Searchkick.models.each do |model|
puts "Reindexing #{model.name}..."
model.reindex
end
puts "Reindex complete"
end
end
end