From df48a9d42bfceda29ee17c6f81e762a116876043 Mon Sep 17 00:00:00 2001 From: aaronskiba Date: Wed, 21 Jan 2026 15:44:47 -0700 Subject: [PATCH] Add `orgs:delete_junk_trackers` rake task Adds `orgs:delete_junk_trackers` rake task and service to remove Tracker records with blank codes. This cleans up junk data in the trackers table and unblocks deletion of otherwise orphaned orgs (see https://github.com/portagenetwork/roadmap/pull/1259). Partly addresses https://github.com/portagenetwork/roadmap/issues/1260 --- .../orgs/delete_junk_trackers_service.rb | 17 +++++++++++++++++ lib/tasks/orgs.rake | 5 +++++ 2 files changed, 22 insertions(+) create mode 100644 app/services/orgs/delete_junk_trackers_service.rb diff --git a/app/services/orgs/delete_junk_trackers_service.rb b/app/services/orgs/delete_junk_trackers_service.rb new file mode 100644 index 0000000000..3ed2561f46 --- /dev/null +++ b/app/services/orgs/delete_junk_trackers_service.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module Orgs + # Invoked by the `orgs:delete_junk_trackers` Rake task. + # This service deletes all "junk" trackers (i.e. `Tracker.where(code: '')`) + # Partly addresses https://github.com/portagenetwork/roadmap/issues/1260 + module DeleteJunkTrackersService + module_function + + def run + junk_trackers = Tracker.where(code: '') + puts "Found #{junk_trackers.count} junk trackers ( i.e. `Tracker.where(code: '')` )" + destroy_result = junk_trackers.destroy_all + puts "Deleted #{destroy_result.count} of these junk trackers." + end + end +end diff --git a/lib/tasks/orgs.rake b/lib/tasks/orgs.rake index 7ba054ccb0..6bca752d68 100644 --- a/lib/tasks/orgs.rake +++ b/lib/tasks/orgs.rake @@ -13,4 +13,9 @@ namespace :orgs do task cleanup_unmanaged_orgs_with_users: :environment do Orgs::CleanupUnmanagedOrgsWithUsersService.run end + + desc 'Deletes junk trackers from the DB (i.e. Tracker.where(code: ""))' + task delete_junk_trackers: :environment do + Orgs::DeleteJunkTrackersService.run + end end