Skip to content

Update members namespace id constraints

Serena Fang requested to merge members-namespace-id-constraints into master

What does this MR do and why?

Describe in detail what your merge request does and why.

#349640 (closed)

  • add NOT NULL constraint for member_namespace_id column
  • change add_concurrent_foreign_key :members, :namespaces, column: :namespace_id, on_delete: :nullify to add_concurrent_foreign_key :members, :namespaces, column: :namespace_id, on_delete: :cascade

up:

main: == 20220914005141 ChangeNamespaceIdNotNullInMembers: migrating ================
main: -- current_schema()
main:    -> 0.0016s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- current_schema()
main:    -> 0.0002s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE members\nADD CONSTRAINT check_508774aac0\nCHECK ( member_namespace_id IS NOT NULL )\nNOT VALID;\n")
main:    -> 0.0014s
main: == 20220914005141 ChangeNamespaceIdNotNullInMembers: migrated (0.0255s) =======

main: == 20220914010233 ChangeMembersNamespaceForeignKeyOnDeleteConstraint: migrating 
main: -- transaction_open?()
main:    -> 0.0000s
main: -- foreign_keys(:members)
main:    -> 0.0024s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE members\nADD CONSTRAINT fk_2f85abf8f1\nFOREIGN KEY (member_namespace_id)\nREFERENCES namespaces (id)\nON DELETE CASCADE\nNOT VALID;\n")
main:    -> 0.0040s
main: == 20220914010233 ChangeMembersNamespaceForeignKeyOnDeleteConstraint: migrated (0.0088s) 

down:

main: == 20220914010233 ChangeMembersNamespaceForeignKeyOnDeleteConstraint: reverting 
main: -- transaction_open?()
main:    -> 0.0000s
main: -- foreign_keys(:members)
main:    -> 0.0034s
main: -- remove_foreign_key(:members, {:column=>:member_namespace_id, :name=>"fk_2f85abf8f1"})
main:    -> 0.0023s
main: == 20220914010233 ChangeMembersNamespaceForeignKeyOnDeleteConstraint: reverted (0.0479s) 

main: == 20220914005141 ChangeNamespaceIdNotNullInMembers: reverting ================
main: -- transaction_open?()
main:    -> 0.0000s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE members\nDROP CONSTRAINT IF EXISTS check_508774aac0\n")
main:    -> 0.0003s
main: == 20220914005141 ChangeNamespaceIdNotNullInMembers: reverted (0.0014s) =======

Screenshots or screen recordings

These are strongly recommended to assist reviewers and reduce the time to merge your change.

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Serena Fang

Merge request reports