Validate the projects.creator_id foregin key synchronously
What does this MR do and why?
This is a follow-up of !117144 (merged) where we added the async migration to make the foreign key valid.
Migration output
UP
> bin/rails db:migrate
main: == [advisory_lock_connection] object_id: 274240, pg_backend_pid: 76295
main: == 20230410123709 ValidateFkProjectsCreatorId: migrating ======================
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0004s
main: -- execute("ALTER TABLE projects VALIDATE CONSTRAINT fk_03ec10b0d3;")
main: -> 0.0005s
main: -- execute("RESET statement_timeout")
main: -> 0.0002s
main: == 20230410123709 ValidateFkProjectsCreatorId: migrated (0.1061s) =============
main: == [advisory_lock_connection] object_id: 274240, pg_backend_pid: 76295
ci: == [advisory_lock_connection] object_id: 274480, pg_backend_pid: 76298
ci: == 20230410123709 ValidateFkProjectsCreatorId: migrating ======================
ci: -- execute("SET statement_timeout TO 0")
ci: -> 0.0004s
ci: -- execute("ALTER TABLE projects VALIDATE CONSTRAINT fk_03ec10b0d3;")
ci: -> 0.0007s
ci: -- execute("RESET statement_timeout")
ci: -> 0.0003s
ci: == 20230410123709 ValidateFkProjectsCreatorId: migrated (0.0202s) =============
ci: == [advisory_lock_connection] object_id: 274480, pg_backend_pid: 76298
DOWN
> bundle exec rails db:rollback:main
main: == [advisory_lock_connection] object_id: 274040, pg_backend_pid: 75043
main: == 20230410123709 ValidateFkProjectsCreatorId: reverting ======================
main: == 20230410123709 ValidateFkProjectsCreatorId: reverted (0.0041s) =============
main: == [advisory_lock_connection] object_id: 274040, pg_backend_pid: 75043
> bundle exec rails db:rollback:ci
ci: == [advisory_lock_connection] object_id: 273980, pg_backend_pid: 75832
ci: == 20230410123709 ValidateFkProjectsCreatorId: reverting ======================
ci: == 20230410123709 ValidateFkProjectsCreatorId: reverted (0.0105s) =============
ci: == [advisory_lock_connection] object_id: 273980, pg_backend_pid: 75832
How to set up and validate locally
Run bin/rails db:migrate
to run the migration locally.
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.
Related to #406262 (closed)
Edited by Abdul Wadood