Add work items related link restrictions table
Related to #424880 (closed)
What does this MR do and why?
Adds a new table called work_item_related_link_restrictions
to the database. This table will store restrictions on what types of work items can be linked to each other.
Because the restriction can differ depending on the type of link this table includes the column link_type
which is an enum attribute matching link_type
in IssuableLink
.
This table's functionality is similar to work_item_hierarchy_restrictions
(added in !103796 (merged)) and will need a follow-up migration to add the records and the model validation in WorkItems::RelatedWorkItemLink
(see #424880 (closed)).
Database
# UP
❯ bin/rails db:migrate:up:main VERSION=20230930094139
main: == [advisory_lock_connection] object_id: 226880, pg_backend_pid: 88055
main: == 20230930094139 AddRelatedLinkRestrictions: migrating =======================
main: -- create_table(:work_item_related_link_restrictions)
main: -> 0.0073s
main: == 20230930094139 AddRelatedLinkRestrictions: migrated (0.1162s) ==============
# DOWN
❯ bin/rails db:migrate:down:main VERSION=20230930094139
main: == [advisory_lock_connection] object_id: 263280, pg_backend_pid: 87145
main: == 20230930094139 AddRelatedLinkRestrictions: reverting =======================
main: -- drop_table(:work_item_related_link_restrictions)
main: -> 0.0019s
main: == 20230930094139 AddRelatedLinkRestrictions: reverted (0.0054s) ==============
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.