Clean up bigint conversion for ci_sources_pipelines

What does this MR do and why?

This is the release N+2 cleanup step of converting the ci_sources_pipelines columns id, project_id and source_project_id from integer to bigint. See remove the trigger and old integer columns.

The new post-deployment migration db/post_migrate/20260910122747_clean_up_bigint_conversion_for_ci_sources_pipelines.rb calls cleanup_conversion_of_integer_to_bigint. The helper drops the sync trigger and the old *_convert_to_bigint integer columns. The swap step it follows merged in !251341 (merged).

Ignore rule

Ci::Sources::Pipeline ignores the three temporary columns. remove_with moves from 19.5 to 19.6.

The ignore rule has to stay in place while this migration runs, so the rule can only be removed one release later. !242067 removes the rule itself.

Schema

db/structure.sql is unchanged on purpose. On a new installation the three columns are already bigint, so the migration finds nothing to drop and does nothing.

The db/integer_ids_not_yet_initialized_to_bigint.yml edit is generated by the cleanup helper.

Rollback

down is a no-op on purpose. restore_conversion_of_integer_to_bigint would recreate the three integer columns and the sync trigger. On a new installation those objects never existed, so up does nothing while down would add four objects.

That asymmetry fails the db:check-migrations job, which rolls back new migrations and compares db/structure.sql against the target branch. A no-op down keeps that job running instead of disabling it with the pipeline:skip-check-migrations label.

The finalize step earlier in this conversion chain already has an empty down, so a rollback cannot be carried back through the chain either way. This matches !252927 (merged), the equivalent cleanup for the deployment_clusters table.

Feature flag

No feature flag. A post-deployment migration and a milestone value on an ignore rule cannot be gated by one. Hence the feature flag::skipped label.

Edited by Oleg Yakovenko

Merge request reports

Loading
Loading