Resolve "Allow migration helpers to create a new foreign key for an existing column, but with a different name"
What does this MR do?
Fixes #36454 (closed)
Currently, we are not able to add a new foreign key to a table (even with a different foreign key name), if a foreign key already exists for that column.
PostgreSQL supports providing multiple foreign keys to the same column, but our migration helpers don't.
As discussed in !19617 (comment 242273290), this change can help us add a new foreign key with a constraint before removing an existing foreign key for the same column and thus prevent cases where we have a short duration of time where there are no foreign key constraint associated with a table, which could lead to data inconsistency.
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team