From c6ae4139a21ceb4c010d0a20a75d5b9a80b09df9 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Wed, 11 Oct 2023 17:28:58 +0200 Subject: [PATCH] add task to remove dol orphan --- ..._remove_orphan_dossier_operation_logs.rake | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 lib/tasks/deployment/20231011144554_remove_orphan_dossier_operation_logs.rake diff --git a/lib/tasks/deployment/20231011144554_remove_orphan_dossier_operation_logs.rake b/lib/tasks/deployment/20231011144554_remove_orphan_dossier_operation_logs.rake new file mode 100644 index 000000000..0b94628ac --- /dev/null +++ b/lib/tasks/deployment/20231011144554_remove_orphan_dossier_operation_logs.rake @@ -0,0 +1,40 @@ +namespace :after_party do + desc 'Deployment task: remove_orphan_dossier_operation_logs' + task remove_orphan_dossier_operation_logs: :environment do + puts "Running deploy task 'remove_orphan_dossier_operation_logs'" + + job_limit = 200_000 + + not_deletion_orphans = DossierOperationLog + .not_deletion + .where.missing(:dossier) + .limit(job_limit) + + batch_size = 1_000 + + rake_puts "Suppression des dols avec operation != supprimer" + + progress = ProgressReport.new(not_deletion_orphans.count) + + not_deletion_orphans.in_batches(of: batch_size) do |b| + b.destroy_all + progress.inc(batch_size) + end + + rake_puts "Supression des serialized des dols avec operation == supprimer" + + deletion_orphans = DossierOperationLog + .supprimer + .limit(job_limit) + + progress = ProgressReport.new(deletion_orphans.count) + + deletion_orphans.find_each(batch_size:) do |dossier_operation_log| + dossier_operation_log.serialized.purge_later + progress.inc + end + + AfterParty::TaskRecord + .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp + end +end