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_atattribute
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