gitlab-org--gitlab-foss/db/post_migrate/20210415155043_move_contain...

36 lines
993 B
Ruby

# frozen_string_literal: true
class MoveContainerRegistryEnabledToProjectFeatures3 < ActiveRecord::Migration[6.0]
include Gitlab::Database::MigrationHelpers
BATCH_SIZE = 21_000
MIGRATION = 'MoveContainerRegistryEnabledToProjectFeature'
disable_ddl_transaction!
def up
# Delete any existing jobs from the queue
delete_queued_jobs(MIGRATION)
# Delete existing rows in background_migration_jobs table
bg_migration_job_class = define_model('background_migration_jobs')
bg_migration_job_class.where(class_name: MIGRATION).delete_all
batchable_project_class = define_batchable_model('projects')
queue_background_migration_jobs_by_range_at_intervals(batchable_project_class, MIGRATION, 2.minutes, batch_size: BATCH_SIZE, track_jobs: true)
end
def down
# no-op
end
private
def define_model(table_name)
Class.new(ActiveRecord::Base) do
self.table_name = table_name
self.inheritance_column = :_type_disabled
end
end
end