Update members namespace id constraints
What does this MR do and why?
Describe in detail what your merge request does and why.
- add NOT NULL constraint for
member_namespace_id
column - change
add_concurrent_foreign_key :members, :namespaces, column: :namespace_id, on_delete: :nullify
toadd_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.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Serena Fang