gitlab-org--gitlab-foss/db/post_migrate/20210506065000_schedule_bac...

39 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class ScheduleBackfillTraversalIds < ActiveRecord::Migration[6.0]
include Gitlab::Database::MigrationHelpers
ROOTS_MIGRATION = 'BackfillNamespaceTraversalIdsRoots'
CHILDREN_MIGRATION = 'BackfillNamespaceTraversalIdsChildren'
DOWNTIME = false
BATCH_SIZE = 1_000
SUB_BATCH_SIZE = 100
DELAY_INTERVAL = 2.minutes
disable_ddl_transaction!
def up
# Personal namespaces and top-level groups
final_delay = queue_background_migration_jobs_by_range_at_intervals(
::Gitlab::BackgroundMigration::BackfillNamespaceTraversalIdsRoots::Namespace.base_query,
ROOTS_MIGRATION,
DELAY_INTERVAL,
batch_size: BATCH_SIZE,
other_job_arguments: [SUB_BATCH_SIZE],
track_jobs: true
)
final_delay += DELAY_INTERVAL
# Subgroups
queue_background_migration_jobs_by_range_at_intervals(
::Gitlab::BackgroundMigration::BackfillNamespaceTraversalIdsChildren::Namespace.base_query,
CHILDREN_MIGRATION,
DELAY_INTERVAL,
batch_size: BATCH_SIZE,
initial_delay: final_delay,
other_job_arguments: [SUB_BATCH_SIZE],
track_jobs: true
)
end
end