lib/tasks/elasticsearch.rake in handshake_service-0.1.5 vs lib/tasks/elasticsearch.rake in handshake_service-0.1.6
- old
+ new
@@ -2,84 +2,86 @@
# Begins by creating the index using tire:import:model command. This will create the "official" index name, e.g. "things" each time.
# Then we rename it to, e.g. "things_20121001052916" and alias "things" to it.
# Assumes usage of the elasticsearch-ruby libraries
# TODO: Assumes you have a library called ElasticsearchAdminHelper defined with the right methods. Move that helper into this gem
-namespace :elasticsearch do
- desc 'Reindexes all ActiveRecord model indices'
- task "reindex:all" => :environment do
- Rails.application.eager_load!
- include ElasticsearchAdminHelper
+if defined?(Rails)
+ namespace :elasticsearch do
+ desc 'Reindexes all ActiveRecord model indices'
+ task "reindex:all" => :environment do
+ Rails.application.eager_load!
+ include ElasticsearchAdminHelper
- ActiveRecord::Base.descendants.each do |model_class|
- next unless model_class.respond_to? :__elasticsearch__
- reindex_model(model_class)
+ ActiveRecord::Base.descendants.each do |model_class|
+ next unless model_class.respond_to? :__elasticsearch__
+ reindex_model(model_class)
+ end
+
+ puts 'All indices reindexed'
end
- puts 'All indices reindexed'
- end
+ desc 'Deletes indices and then reindexes all ActiveRecord model indices assuming none exist yet'
+ task "reindex:all:fresh" => :environment do
+ return unless Rails.env.development? or Rails.env.test?
- desc 'Deletes indices and then reindexes all ActiveRecord model indices assuming none exist yet'
- task "reindex:all:fresh" => :environment do
- return unless Rails.env.development? or Rails.env.test?
+ Rails.application.eager_load!
+ include ElasticsearchAdminHelper
- Rails.application.eager_load!
- include ElasticsearchAdminHelper
+ # If we don't create the temporary indices, then mass emails (for example) will try
+ # to query users for recipient count and fail
+ ActiveRecord::Base.descendants.each do |model_class|
+ next unless model_class.respond_to? :__elasticsearch__
+ delete_index(model_class.index_name)
+ create_temporary_index(model_class)
+ end
- # If we don't create the temporary indices, then mass emails (for example) will try
- # to query users for recipient count and fail
- ActiveRecord::Base.descendants.each do |model_class|
- next unless model_class.respond_to? :__elasticsearch__
- delete_index(model_class.index_name)
- create_temporary_index(model_class)
- end
+ ActiveRecord::Base.descendants.each do |model_class|
+ next unless model_class.respond_to? :__elasticsearch__
+ reindex_model(model_class, true)
+ end
- ActiveRecord::Base.descendants.each do |model_class|
- next unless model_class.respond_to? :__elasticsearch__
- reindex_model(model_class, true)
+ puts 'All indices created, aliased and ready'
end
- puts 'All indices created, aliased and ready'
- end
+ desc 'Deletes indices and then reindexes all ActiveRecord model indices assuming none exist yet. Is used for testing where aliases are not used'
+ task "tests:prepare" => :environment do
+ return unless Rails.env.development? or Rails.env.test?
- desc 'Deletes indices and then reindexes all ActiveRecord model indices assuming none exist yet. Is used for testing where aliases are not used'
- task "tests:prepare" => :environment do
- return unless Rails.env.development? or Rails.env.test?
+ Rails.application.eager_load!
+ include ElasticsearchAdminHelper
- Rails.application.eager_load!
- include ElasticsearchAdminHelper
+ # If we don't create the temporary indices, then mass emails (for example) will try
+ # to query users for recipient count and fail
+ ActiveRecord::Base.descendants.each do |model_class|
+ next unless model_class.respond_to? :__elasticsearch__
+ delete_index(model_class.index_name)
+ create_temporary_index(model_class)
+ end
- # If we don't create the temporary indices, then mass emails (for example) will try
- # to query users for recipient count and fail
- ActiveRecord::Base.descendants.each do |model_class|
- next unless model_class.respond_to? :__elasticsearch__
- delete_index(model_class.index_name)
- create_temporary_index(model_class)
+ puts 'All indices created, aliased and ready'
end
- puts 'All indices created, aliased and ready'
- end
+ Dir.foreach("#{Rails.root}/app/models") do |item|
+ next if item == '.' or item == '..' or not item
+ name = item.split(".")[0].pluralize
- Dir.foreach("#{Rails.root}/app/models") do |item|
- next if item == '.' or item == '..' or not item
- name = item.split(".")[0].pluralize
+ desc "Reindexes #{name} using aliases"
+ task "reindex:#{name}" => :environment do
+ Rails.application.eager_load!
+ include ElasticsearchAdminHelper
- desc "Reindexes #{name} using aliases"
- task "reindex:#{name}" => :environment do
- Rails.application.eager_load!
- include ElasticsearchAdminHelper
+ klass = Kernel.const_get(name.classify)
+ reindex_model(klass)
+ end
- klass = Kernel.const_get(name.classify)
- reindex_model(klass)
- end
+ desc "Reindexes #{name} using aliases, and deletes the old one first" # because Tire tries to create an index for us sometimes
+ task "reindex:#{name}:delete_old_first" => :environment do
+ Rails.application.eager_load!
+ include ElasticsearchAdminHelper
- desc "Reindexes #{name} using aliases, and deletes the old one first" # because Tire tries to create an index for us sometimes
- task "reindex:#{name}:delete_old_first" => :environment do
- Rails.application.eager_load!
- include ElasticsearchAdminHelper
+ klass = Kernel.const_get(name.classify)
+ reindex_model(klass, true)
+ end
- klass = Kernel.const_get(name.classify)
- reindex_model(klass, true)
end
-
end
end