diff --git a/lib/tasks/deployment/20211006154552_remove_orphaned_avis.rake b/lib/tasks/deployment/20211006154552_remove_orphaned_avis.rake new file mode 100644 index 000000000..f782cf6b1 --- /dev/null +++ b/lib/tasks/deployment/20211006154552_remove_orphaned_avis.rake @@ -0,0 +1,22 @@ +namespace :after_party do + desc 'Deployment task: remove_orphaned_avis' + task remove_orphaned_avis: :environment do + puts "Running deploy task 'remove_orphaned_avis'" + + avis = Avis.unscope(:joins) + .joins('LEFT JOIN dossiers ON dossiers.id = avis.dossier_id') + .where(dossiers: { id: nil }) + progress = ProgressReport.new(avis.count) + + avis.find_each do |avis| + avis.destroy + progress.inc + end + progress.finish + + # 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