Finalize backfill AddOn FixedItemsModel ids

Overview

This issue tracks the finalization of the batched background migration that backfills AddOn FixedItemsModel IDs (implemented in gitlab#588162). Finalization ensures the migration is complete and allows the application to safely depend on the migrated data.

Context

The batched background migration for backfilling subscription_add_ons records with their corresponding FixedItemsModel IDs was queued in GitLab 18.10 as part of the work to convert the subscription_add_ons table to be hard-coded in application code (&19981).

According to batched background migration finalization guidelines, migrations should be finalized after:

  1. The migration has completed on GitLab.com
  2. The migration was added in or before the last required stop (18.11 is a required stop; 19.0 is the next release)

Scope

This issue implements the finalization step by:

  • Adding a post-deployment migration that calls ensure_batched_background_migration_is_finished to verify the backfill is complete
  • Updating the db/docs/batched_background_migrations/ YAML file with the finalized_by version
  • Ensuring the migration parameters (job arguments, gitlab_schema) exactly match the original queued migration

Success Criteria

  • Post-deployment migration added that finalizes the batched background migration
  • BBM dictionary file updated with finalized_by version
  • All tests pass
  • Migration is verified as complete on GitLab.com before finalization

Related Work

  • Parent Epic: &19981 - Convert subscription_add_ons table to be hard-coded in application code
  • Backfill Issue: #588162 - Backfill AddOn FixedItemsModel ids
  • Batched Background Migrations Documentation

Notes

  • This should be scheduled for GitLab 19.0 (the release after the required stop in 18.11)
  • Do not proceed with finalization until the migration is confirmed complete on GitLab.com
  • The finalization migration must use skip_early_finalization_validation: true if needed, but should follow the standard timeline when possible
Edited Feb 02, 2026 by Florian Jedelhauser
Assignee Loading
Time tracking Loading