diff --git a/app/jobs/migrate_before_force_delete_statuses_job.rb b/app/jobs/migrate_before_force_delete_statuses_job.rb index d7f6c0606..7161ecdd2 100644 --- a/app/jobs/migrate_before_force_delete_statuses_job.rb +++ b/app/jobs/migrate_before_force_delete_statuses_job.rb @@ -1,11 +1,37 @@ class MigrateBeforeForceDeleteStatusesJob < ApplicationJob def perform + logger.info 'Ran MigrateBeforeForceDeleteStatusesJob!' + domains = Domain.where.not(statuses_before_force_delete: nil) + logger.info "Total domains are #{domains.count}" + + interate_domain_in_batches(domains) + end + + private + + def interate_domain_in_batches(domains) + count = 0 + domains.find_in_batches do |domain_batches| + count += domain_batches.count + logger.info "Proccesing #{count} domains of #{domains.count}" domain_batches.each do |domain| - domain.force_delete_domain_statuses_history = domain.statuses_before_force_delete - domain.save + migrate_data_to_statuses_history(domain) end end end + + def migrate_data_to_statuses_history(domain) + domain.force_delete_domain_statuses_history = domain.statuses_before_force_delete + domain.save + rescue StandardError => e + logger.warn "#{domain.name} crashed!" + logger.warn e.to_s + raise e + end + + def logger + @logger ||= Logger.new(Rails.root.join('log', 'migrate_before_force_delete_statuses.log')) + end end diff --git a/app/jobs/migrate_statuses_to_domain_history_job.rb b/app/jobs/migrate_statuses_to_domain_history_job.rb index 870a9cf55..205ea1816 100644 --- a/app/jobs/migrate_statuses_to_domain_history_job.rb +++ b/app/jobs/migrate_statuses_to_domain_history_job.rb @@ -1,9 +1,37 @@ class MigrateStatusesToDomainHistoryJob < ApplicationJob def perform + logger.info 'Ran MigrateStatusesToDomainHistoryJob!' + domains = Domain.where(locked_by_registrant_at: nil) - domains.each do |domain| - domain.admin_store_statuses_history = domain.statuses - domain.save + logger.info "Total domains are #{domains.count}" + + interate_domain_in_batches(domains) + end + + private + + def interate_domain_in_batches(domains) + count = 0 + + domains.find_in_batches do |domain_batches| + count += domain_batches.count + logger.info "Proccesing #{count} domains of #{domains.count}" + domain_batches.each do |domain| + migrate_data_to_admin_store_field(domain) + end end end + + def migrate_data_to_admin_store_field(domain) + domain.admin_store_statuses_history = domain.statuses + domain.save + rescue StandardError => e + logger.warn "#{domain.name} crashed!" + logger.warn e.to_s + raise e + end + + def logger + @logger ||= Logger.new(Rails.root.join('log', 'migrate_statuses_to_domain_history.log')) + end end