Swap FK external_pull_requests.project_id to projects for LFK
What does this MR do and why?
Per &7249 (closed)
As part of our CI "decomposition" efforts we need to remove all foreign keys that are cross-database (ie. between the planned main
and ci
databases). We are going to replace them all with "loose foreign keys".
Related: #348267 (closed)
Validations
- Best team to review (check off when reviewed): grouppipeline execution devopsverify
-
No way for user to access once parent is deleted. Please explain: @fabiopitino The external pull request is either accessed via the project or via the pipeline. In the first case if the project is deleted, it won't be accessible. In the latter case, pipelines are deleted before deleting a project so any references of ExternalPullRequest#project
won't be called. -
Possible to access once parent deleted but low user impact. Please explain: -
Possible Sidekiq workers that may load directly and possibly lead to exceptions. Please explain: -
Possible user impact to be evaluated or mitigated. Please explain: -
Is this FK safe to be removed to avoid LOCKing problems? Yes, since it locks on projects
andexternal_merge_requests
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Kamil Trzciński (Back 2025-01-01)