BBM - Add finalized_by spec

Ref: #578096 (closed)

What does this MR do and why?

This MR adds a new spec to ensure finalized_by is always set when calling ensure_batched_background_migration_is_finished.

Testing

  • Create a migration which finalize a BBM
  • Set the finalized_at attribute
FinalizeBackfillUserDetailOnboardingUrl
# frozen_string_literal: true

class FinalizeBackfillUserDetailOnboardingUrl < Gitlab::Database::Migration[2.3]
  MIGRATION = "BackfillUserDetailOnboardingUrl"

  disable_ddl_transaction!
  restrict_gitlab_migration gitlab_schema: :gitlab_main
  milestone '18.6'

  def up
    ensure_batched_background_migration_is_finished(
      job_class_name: MIGRATION,
      table_name: :user_details,
      column_name: :user_id,
      job_arguments: [],
      finalize: true
    )
  end

  def down
    # no-op
  end
end

Without finalized_at

  gitlab git:(morefice/add-finalize-by-spec)  be rubocop -A --only BackgroundMigration/DictionaryFile db/post_migrate/20251023124320_finalize_backfill_user_detail_onboarding_url.rb
Inspecting 1 file
C

Offenses:

db/post_migrate/20251023124320_finalize_backfill_user_detail_onboarding_url.rb:3:1: C: BackgroundMigration/DictionaryFile: Missing finalized_by attribute in dictionary for migration using ensure_batched_background_migration_is_finished. Please add the finalized_by attribute with the migration version.
class FinalizeBackfillUserDetailOnboardingUrl < Gitlab::Database::Migration[2.3] ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1 file inspected, 1 offense detected

With finalized_at

  gitlab git:(morefice/add-finalize-by-spec)  be rubocop -A --only BackgroundMigration/DictionaryFile db/post_migrate/20251023124320_finalize_backfill_user_detail_onboarding_url.rb
Inspecting 1 file
.

1 file inspected, no offenses detected
Edited by Max Orefice

Merge request reports

Loading