Skip to content

Instantly share code, notes, and snippets.

@aub
Created December 8, 2009 18:13
Show Gist options
  • Save aub/251861 to your computer and use it in GitHub Desktop.
Save aub/251861 to your computer and use it in GitHub Desktop.
unless ENV['RAILS_ROOT']
ENV['RAILS_ROOT'] = Dir.pwd
end
STDERR.puts("Loading Rails environment...")
require File.join(ENV['RAILS_ROOT'], 'config', 'environment')
groups = CharacteristicGroup.filter do
with(:name).in(['Gender', 'Age', 'Lifestage', 'Internal QA'])
end
Characteristic.transaction do
reindexables = Set.new
deletable_classifications_object_ids = Set.new
groups.each do |group|
STDERR.puts("Deleting #{group.name}")
group.characteristics.each do |characteristic|
characteristic.classifications_objects.each do |classifications_object|
deletable_classifications_object_ids << classifications_object.id
reindexables << [classifications_object.classifiable_type, classifications_object.classifiable_id]
end
end
end
STDERR.puts("Deleting #{deletable_classifications_object_ids.size} classifications_objects.")
ClassificationsObject.delete_all(:id => Array(deletable_classifications_object_ids))
STDERR.puts("Reindexing #{reindexables.size} objects.")
reindexables.each do |data|
object = data[0].constantize.find(data[1])
Sunspot.index(object)
end
STDERR.puts("Committing to Solr")
Sunspot.commit
STDERR.puts("Deleting #{groups.size} characteristic groups")
groups.all.each do |group|
group.destroy
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment