Class: Gitlab::BackgroundMigration::CleanupOrphanedRoutes

Inherits:
BatchedMigrationJob show all
Includes:
Database::DynamicModelHelpers
Defined in:
lib/gitlab/background_migration/cleanup_orphaned_routes.rb

Overview

Removes orphaned routes, i.e. routes that reference a namespace or project that no longer exists. This was possible since we were using a polymorphic association source_id, source_type. However since now we have project namespaces we can use a FK on routes#namespace_id to avoid orphaned records in routes.

Constant Summary

Constants included from Database::DynamicModelHelpers

Database::DynamicModelHelpers::BATCH_SIZE

Constants inherited from BatchedMigrationJob

BatchedMigrationJob::DEFAULT_FEATURE_CATEGORY

Instance Method Summary collapse

Methods included from Database::DynamicModelHelpers

#define_batchable_model, #each_batch, #each_batch_range

Methods inherited from BatchedMigrationJob

#batch_metrics, feature_category, #filter_batch, generic_instance, #initialize, job_arguments, job_arguments_count, operation_name, scope_to

Constructor Details

This class inherits a constructor from Gitlab::BackgroundMigration::BatchedMigrationJob

Instance Method Details

#performObject



13
14
15
16
17
# File 'lib/gitlab/background_migration/cleanup_orphaned_routes.rb', line 13

def perform
  # there should really be no records to fix, there is none gitlab.com, but taking the safer route, just in case.
  fix_missing_namespace_id_routes
  cleanup_orphaned_routes
end