[Backport 18.8] Reset group_push_rules primary key sequence

What does this MR do and why?

Resets the group_push_rules_id_seq sequence to MAX(id) + 1000 via a post-deployment migration.

The BackfillGroupPushRulesFromPushRulesWithIds migration (!199456 (merged)) and the sync_namespace_to_group_push_rules trigger insert rows with explicit id values copied from push_rules.id. This does not advance group_push_rules_id_seq, so new INSERTs via PushRules::CreateOrUpdateService produce IDs that collide with existing rows, raising PG::UniqueViolation.

This is particularly impactful on smaller instances (GitLab Dedicated) where push_rules.id values are low and the sequence catches up quickly. On GitLab.com the gap is large enough that it hasn't triggered yet, but it's a latent bug.

Contributes to #588689 (closed)

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

  • This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch.
  • The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes).
  • The MR title is descriptive (e.g. "Backport of 'title of default branch MR'"). This is important, since the title will be copied to the patch blog post.
  • Required labels have been applied to this merge request
  • This MR has been approved by a maintainer (only one approval is required).
  • Ensure the e2e:test-on-omnibus-ee job has succeeded, or if it has failed, investigate the failures. If you determine the failures are unrelated, you may proceed. If you need assistance investigating, reach out to a Software Engineer in Test in #s_developer_experience.

Note to the merge request author and maintainer

If you have questions about the patch release process, please:

Edited by Vasilii Iakliushin

Merge request reports

Loading