Skip to content

Add approval policy rules and projects link table

What does this MR do and why?

This MR adds a new table approval_policy_rule_project_links to store the link between a project and its approval_policy_rules for efficient lookup.

Migration Output

main: == [advisory_lock_connection] object_id: 132640, pg_backend_pid: 88947
main: == 20240705083121 CreateApprovalPolicyRuleProjectLinks: migrating =============
main: -- create_table(:approval_policy_rule_project_links)
main:    -> 0.0301s
main: == 20240705083121 CreateApprovalPolicyRuleProjectLinks: migrated (0.1223s) ====
main: == [advisory_lock_connection] object_id: 132640, pg_backend_pid: 88947


main: == [advisory_lock_connection] object_id: 133080, pg_backend_pid: 88952
main: == 20240705083319 AddProjectIdFkToApprovalPolicyRuleProjectLinks: migrating ===
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- execute("ALTER TABLE approval_policy_rule_project_links ADD CONSTRAINT fk_9ed5cf0600 FOREIGN KEY (project_id) REFERENCES projects (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0065s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0013s
main: -- execute("ALTER TABLE approval_policy_rule_project_links VALIDATE CONSTRAINT fk_9ed5cf0600;")
main:    -> 0.0101s
main: -- execute("RESET statement_timeout")
main:    -> 0.0013s
main: == 20240705083319 AddProjectIdFkToApprovalPolicyRuleProjectLinks: migrated (0.0687s) 
main: == [advisory_lock_connection] object_id: 133080, pg_backend_pid: 88952


main: == [advisory_lock_connection] object_id: 143180, pg_backend_pid: 88958
main: == 20240705083349 AddRuleIdFkToApprovalPolicyRuleProjectLinks: migrating ======
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- execute("ALTER TABLE approval_policy_rule_project_links ADD CONSTRAINT fk_1c78796d52 FOREIGN KEY (approval_policy_rule_id) REFERENCES approval_policy_rules (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0024s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0015s
main: -- execute("ALTER TABLE approval_policy_rule_project_links VALIDATE CONSTRAINT fk_1c78796d52;")
main:    -> 0.0044s
main: -- execute("RESET statement_timeout")
main:    -> 0.0009s
main: == 20240705083349 AddRuleIdFkToApprovalPolicyRuleProjectLinks: migrated (0.0844s) 
main: == [advisory_lock_connection] object_id: 143180, pg_backend_pid: 88958

MR acceptance checklist

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

Addresses #464034

Merge request reports