Skip to content

Add foreign key constraints to `organization_users`

Abdul Wadood requested to merge 493506-org-users-fk into master

What does this MR do and why?

This change introduces foreign key constraints to the organization_users table. The user_id column is now a foreign key referencing the users table. This constraint enhances data integrity by ensuring valid relationships between organization_users and their corresponding users.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Migration output

up
bin/rails db:migrate
main: == [advisory_lock_connection] object_id: 130040, pg_backend_pid: 31195
main: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: migrating =========
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- execute("ALTER TABLE organization_users ADD CONSTRAINT fk_8d9b20725d FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE NOT VALID;")
main:    -> 0.0036s
main: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: migrated (0.0599s)

main: == [advisory_lock_connection] object_id: 130040, pg_backend_pid: 31195
ci: == [advisory_lock_connection] object_id: 130340, pg_backend_pid: 31197
ci: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: migrating =========
ci: -- transaction_open?(nil)
ci:    -> 0.0000s
ci: -- transaction_open?(nil)
ci:    -> 0.0000s
ci: -- execute("ALTER TABLE organization_users ADD CONSTRAINT fk_8d9b20725d FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE NOT VALID;")
ci:    -> 0.0032s
ci: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: migrated (0.0295s)

ci: == [advisory_lock_connection] object_id: 130340, pg_backend_pid: 31197
down
for v in 20241016032053; do bin/rails db:migrate:down:ci VERSION=$v && bin/rails db:migrate:down:main VERSION=$v; done
ci: == [advisory_lock_connection] object_id: 129600, pg_backend_pid: 29079
ci: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: reverting =========
ci: -- transaction_open?(nil)
ci:    -> 0.0000s
ci: -- remove_foreign_key(:organization_users, {:column=>:user_id})
ci:    -> 0.0161s
ci: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: reverted (0.2744s)

ci: == [advisory_lock_connection] object_id: 129600, pg_backend_pid: 29079
main: == [advisory_lock_connection] object_id: 129600, pg_backend_pid: 30443
main: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: reverting =========
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- remove_foreign_key(:organization_users, {:column=>:user_id})
main:    -> 0.0045s
main: == 20241016032053 AddForeignKeyToOrganizationUsersOnUserId: reverted (0.0631s)

main: == [advisory_lock_connection] object_id: 129600, pg_backend_pid: 30443

Related to #493506

Edited by Abdul Wadood

Merge request reports

Loading