diff --git a/db/docs/batched_background_migrations/backfill_epic_dates_to_work_item_dates_sources.yml b/db/docs/batched_background_migrations/backfill_epic_dates_to_work_item_dates_sources.yml index 8a58ea389b1a91dbb2e5568a45fe1b6ce4615b4e..1e83186ef400f66360584929ed83f10dfaf53731 100644 --- a/db/docs/batched_background_migrations/backfill_epic_dates_to_work_item_dates_sources.yml +++ b/db/docs/batched_background_migrations/backfill_epic_dates_to_work_item_dates_sources.yml @@ -6,4 +6,4 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153115 milestone: '17.1' queued_migration_version: 20240531113402 finalize_after: '2024-06-13' -finalized_by: # version of the migration that finalized this BBM +finalized_by: 20240702092809 diff --git a/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources.rb b/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources.rb new file mode 100644 index 0000000000000000000000000000000000000000..ea01ce327a5ac3885f5d190d19a2b2586d053c30 --- /dev/null +++ b/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class FinalizeBackfillEpicDatesToWorkItemDatesSources < Gitlab::Database::Migration[2.2] + milestone '17.2' + restrict_gitlab_migration gitlab_schema: :gitlab_main + + disable_ddl_transaction! + + def up + ensure_batched_background_migration_is_finished( + job_class_name: 'BackfillEpicDatesToWorkItemDatesSources', + table_name: 'epics', + column_name: 'id', + job_arguments: [], + finalize: true + ) + end + + def down; end +end diff --git a/db/schema_migrations/20240702092809 b/db/schema_migrations/20240702092809 new file mode 100644 index 0000000000000000000000000000000000000000..4b209a1ed9a569502393579d4c5c7f27d4dc04a3 --- /dev/null +++ b/db/schema_migrations/20240702092809 @@ -0,0 +1 @@ +6bb7c9e06e1541c7edc35aca1bda2c3005c25c78c962de49b50f6b0007a96c80 \ No newline at end of file diff --git a/spec/migrations/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources_spec.rb b/spec/migrations/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..2cc9cd7c2f249fa494b2ec5a8417b76eb101ad62 --- /dev/null +++ b/spec/migrations/db/post_migrate/20240702092809_finalize_backfill_epic_dates_to_work_item_dates_sources_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require 'spec_helper' +require_migration! + +RSpec.describe FinalizeBackfillEpicDatesToWorkItemDatesSources, feature_category: :database, migration_version: 20240702092809 do + describe '#up' do + it 'ensures the migration is completed for self-managed instances' do + # enqueue the migration + QueueBackfillEpicDatesToWorkItemDatesSources.new.up + + migration = Gitlab::Database::BackgroundMigration::BatchedMigration.where( + job_class_name: 'BackfillEpicDatesToWorkItemDatesSources', + table_name: 'epics' + ).first + + expect(migration.status).not_to eq(6) # finalized + + migrate! + + expect(migration.reload.status).to eq(6) + QueueBackfillEpicDatesToWorkItemDatesSources.new.down + end + end +end