Remove incorrect ticket work item type hierarchy restrictions

What does this MR do and why?

Two incorrect hierarchy restriction records were added in !127482 (merged). So, we are deleting ALL records that do not match what we have defined for the ticket type in https://gitlab.com/gitlab-org/gitlab/-/blob/99659b546cfc7df1f55dd6421d7f70309feafd08/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb#L54

Might be an overkill, but I used a generic approach to make sure EVERY restriction related to the ticket type is deleted, except for the one defined in the restriction importer at https://gitlab.com/gitlab-org/gitlab/-/blob/395e7d9e3e1afc6f3c8b7e45c7c770f37c0b47f3/lib/gitlab/database_importers/work_items/hierarchy_restrictions_importer.rb#L54

Query plans

DELETE invalid restriction records

https://console.postgres.ai/gitlab/gitlab-production-main/sessions/39921/commands/123169

DELETE FROM 
  work_item_hierarchy_restrictions 
WHERE 
  (
    parent_type_id = 9 
    OR child_type_id = 9
  ) 
  AND child_type_id != 5

Migration output

UP
main: == [advisory_lock_connection] object_id: 136580, pg_backend_pid: 12166
main: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: migrating 
main: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: migrated (0.0414s) 

main: == [advisory_lock_connection] object_id: 136580, pg_backend_pid: 12166
ci: == [advisory_lock_connection] object_id: 136580, pg_backend_pid: 12167
ci: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: migrating 
ci: -- The migration is skipped since it modifies the schemas: [:gitlab_main].
ci: -- This database can only apply migrations in one of the following schemas: [:gitlab_ci, :gitlab_ci_cell_local, :gitlab_internal, :gitlab_shared].
ci: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: migrated (0.0115s) 

ci: == [advisory_lock_connection] object_id: 136580, pg_backend_pid: 12167
DOWN
main: == [advisory_lock_connection] object_id: 136280, pg_backend_pid: 12537
main: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: reverting 
main: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: reverted (0.0114s) 

main: == [advisory_lock_connection] object_id: 136280, pg_backend_pid: 12537
ci: == [advisory_lock_connection] object_id: 136280, pg_backend_pid: 12549
ci: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: reverting 
ci: -- The migration is skipped since it modifies the schemas: [:gitlab_main].
ci: -- This database can only apply migrations in one of the following schemas: [:gitlab_ci, :gitlab_ci_cell_local, :gitlab_internal, :gitlab_shared].
ci: == 20250528143824 RemoveTicketWorkItemTypeWrongHierarchyRestrictions: reverted (0.0128s) 

ci: == [advisory_lock_connection] object_id: 136280, pg_backend_pid: 12549

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #543102 (closed)

Edited by Mario Celi

Merge request reports

Loading