Skip to content

Drop the `NOT VALID` foreign key on `Project#creator_id`

Manoj M J requested to merge mmj-revert-fk-migration into master

What does this MR do and why?

This MR is essentially a revert of the foreign key addition in !102519 (merged)

Why do we need to drop the foreign key now?

Because the addition of this foreign key, even though in NOT VALID state, created unforeseen errors.

UP migration

$ rake db:migrate
main: == 20221104094042 RemoveUsersForeignKeyToProjects: migrating ==================
main: -- transaction_open?()
main:    -> 0.0000s
main: -- foreign_keys(:projects)
main:    -> 0.0089s
main: -- remove_foreign_key(:projects, {:column=>:creator_id})
main:    -> 0.0072s
main: == 20221104094042 RemoveUsersForeignKeyToProjects: migrated (0.0287s) =========

ci: == 20221104094042 RemoveUsersForeignKeyToProjects: migrating ==================
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- foreign_keys(:projects)
ci:    -> 0.0063s
ci: -- remove_foreign_key(:projects, {:column=>:creator_id})
ci:    -> 0.0053s
ci: == 20221104094042 RemoveUsersForeignKeyToProjects: migrated (0.0129s) =========

DOWN migration

$ rake db:migrate:down:main VERSION=20221104094042
main: == 20221104094042 RemoveUsersForeignKeyToProjects: reverting ==================
main: -- transaction_open?()
main:    -> 0.0000s
main: -- foreign_keys(:projects)
main:    -> 0.0174s
main: -- transaction_open?()
main:    -> 0.0000s
main: -- execute("ALTER TABLE projects\nADD CONSTRAINT fk_03ec10b0d3\nFOREIGN KEY (creator_id)\nREFERENCES users (id)\nON DELETE SET NULL\nNOT VALID;\n")
main:    -> 0.0045s
main: == 20221104094042 RemoveUsersForeignKeyToProjects: reverted (0.0307s) =========
$ rake db:migrate:down:ci VERSION=20221104094042
ci: == 20221104094042 RemoveUsersForeignKeyToProjects: reverting ==================
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- foreign_keys(:projects)
ci:    -> 0.0121s
ci: -- transaction_open?()
ci:    -> 0.0000s
ci: -- execute("ALTER TABLE projects\nADD CONSTRAINT fk_03ec10b0d3\nFOREIGN KEY (creator_id)\nREFERENCES users (id)\nON DELETE SET NULL\nNOT VALID;\n")
ci:    -> 0.0036s
ci: == 20221104094042 RemoveUsersForeignKeyToProjects: reverted (0.0232s) =========

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

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 Manoj M J

Merge request reports

Loading