diff options
Diffstat (limited to 'app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb')
-rw-r--r-- | app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb b/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb index 2b4253947ac..b2174be1402 100644 --- a/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb +++ b/app/workers/database/ci_namespace_mirrors_consistency_check_worker.rb @@ -13,7 +13,7 @@ module Database version 1 def perform - return if Feature.disabled?(:ci_namespace_mirrors_consistency_check, default_enabled: :yaml) + return if Feature.disabled?(:ci_namespace_mirrors_consistency_check) results = ConsistencyCheckService.new( source_model: Namespace, @@ -22,6 +22,16 @@ module Database target_columns: %w[namespace_id traversal_ids] ).execute + if results[:mismatches_details].any? + ConsistencyFixService.new( + source_model: Namespace, + target_model: Ci::NamespaceMirror, + sync_event_class: Namespaces::SyncEvent, + source_sort_key: :id, + target_sort_key: :namespace_id + ).execute(ids: results[:mismatches_details].map { |h| h[:id] }) + end + log_extra_metadata_on_done(:results, results) end end |