From db968a1ffceae6e1664428176f0a025262cb15e7 Mon Sep 17 00:00:00 2001 From: Colin Darie Date: Tue, 2 Aug 2022 15:45:00 +0200 Subject: [PATCH] fix(db): remove DossierTransfer without email --- ...estroy_dossier_transfer_without_email.rake | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lib/tasks/deployment/20220802133502_destroy_dossier_transfer_without_email.rake diff --git a/lib/tasks/deployment/20220802133502_destroy_dossier_transfer_without_email.rake b/lib/tasks/deployment/20220802133502_destroy_dossier_transfer_without_email.rake new file mode 100644 index 000000000..68284f1a4 --- /dev/null +++ b/lib/tasks/deployment/20220802133502_destroy_dossier_transfer_without_email.rake @@ -0,0 +1,25 @@ +namespace :after_party do + desc 'Deployment task: destroy_dossier_transfer_without_email' + task destroy_dossier_transfer_without_email: :environment do + puts "Running deploy task 'destroy_dossier_transfer_without_email'" + + invalid_dossiers = DossierTransfer.where(email: "") + + progress = ProgressReport.new(invalid_dossiers.count) + + invalid_dossiers.find_each do |dossier_transfer| + puts "Destroy dossier transfer #{dossier_transfer.id}" + dossier_transfer.destroy_and_nullify + + job = Delayed::Job.where("handler LIKE ALL(ARRAY[?, ?])", "%ActionMailer::MailDeliveryJob%", "%aj_globalid: gid://tps/DossierTransfer/#{dossier_transfer.id}\n%").first + job.destroy if job + + progress.inc + end + + # Update task as completed. If you remove the line below, the task will + # run with every deploy (or every time you call after_party:run). + AfterParty::TaskRecord + .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp + end +end