From 76f63de49a0ffb92f81cb1770f3edebe39c884f7 Mon Sep 17 00:00:00 2001 From: Chris Colvard Date: Tue, 23 Jul 2024 12:42:20 -0400 Subject: [PATCH] Speed up section list migration by optimizing solr queries Only return ids since we're only using ids. --- lib/tasks/avalon_migrations.rake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tasks/avalon_migrations.rake b/lib/tasks/avalon_migrations.rake index 3b5bd49cb6..ef68420c79 100644 --- a/lib/tasks/avalon_migrations.rake +++ b/lib/tasks/avalon_migrations.rake @@ -97,7 +97,7 @@ namespace :avalon do task media_object_section_list: :environment do error_ids = [] mo_count = MediaObject.count - ids_to_migrate = ActiveFedora::SolrService.query("has_model_ssim:MediaObject AND NOT section_list_ssim:[* TO *]", rows: mo_count).pluck("id") + ids_to_migrate = ActiveFedora::SolrService.query("has_model_ssim:MediaObject AND NOT section_list_ssim:[* TO *]", fl: [:id], rows: mo_count).pluck("id") puts "Migrating #{ids_to_migrate.size} out of #{mo_count} Media Objects." ids_to_migrate.each do |id| MediaObject.find(id).save!(validate: false) @@ -105,7 +105,7 @@ namespace :avalon do error_ids += [id] puts "Error migrating #{id}: #{error.message}" end - remaining_ids_count = ActiveFedora::SolrService.query("has_model_ssim:MediaObject AND NOT section_list_ssim:[* TO *]", rows: mo_count).size + remaining_ids_count = ActiveFedora::SolrService.query("has_model_ssim:MediaObject AND NOT section_list_ssim:[* TO *]", fl: [:id], rows: mo_count).size if error_ids.size > 0 puts "Migration finished running but #{error_ids.size} Media Objects failed to migrate. Try running the migration again." elsif remaining_ids_count > 0