# NOTE: When changing this file make sure to also change reindex_elasticsearch.rake within profile publisher as well.
namespace :relationships do
desc 'Migrate relationships from related_object_tags to new Relationship model.' task migrate: [:environment] do # First ensure indexes have been created for the Relationship model Relationship.create_indexes models = [AcademicProgram, AcademicSubject, Article, CustomProfile, Department, Event, ExternalArticle, Feature, GenericObject, Group, Medium, PageEdition, Person, School] models.each do |model| puts "\nMigrating relationships for #{model}" model.where({:related_object_tags.ne => []}).each do |item| models.each do |related_model| item.related_objects(related_model).each do |related_object| begin if Relationship.find_by_objects(item, related_object) print "~" # skip else if Relationship.new_from_objects(item, related_object).save print "." # create end end rescue Mongo::Error::OperationFailure => e puts "\nError saving relationship, probably a duplicate. #{e}" end end end end end puts "\nAll done!\n\n" end
end