Skip to content

Validate the projects.creator_id foregin key synchronously

Abdul Wadood requested to merge 406262-sync-validate-fk into master

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.

Related to #406262 (closed)

Edited by Abdul Wadood

Merge request reports