Fully shard approval_merge_request_rules_users
ApprovalMergeRequestRulesUsers (large table - https://postgres.ai/console/gitlab/gitlab-production-main/sessions/41965/commands/128836)
Milestone 18.2 (required stop)
-
backfill sharding key -> !197054 (merged) -
backfill sharding key 100% complete -
verify 0 records with NULL sharding key -> https://postgres.ai/console/gitlab/gitlab-production-main/sessions/41965/commands/128835
Milestone 18.3
-
finalize sharding key backfill -> !197961 (merged) -
validate the sharding key backfill was finalized -
add a NOT NULL (NOT VALID)constraint on sharding key for new records -> !199931 (merged) -
prepare async constraint validation -> !200377 (merged) -
verify the NOT NULLconstraint check is set on the table's sharding key
Milestone 18.4
-
validate NOT NULLconstraint on sharding key -> !200535 (merged) -
add validate presence: trueon the sharding columns in the rails model -
update db/docs/*.ymlwith sharding key -
add index on foreign key + add a foreign key constraint (NOT VALID) -> !200661 (merged) -
verify the foreign key constraint (NOT VALID) and index are present on the table's sharding key column -
validate foreign key constraint (ASYNC) -> !202062 (merged) -
verify the foreign key constraint is present on the table's sharding key column -
validate foreign key constraint (SYNC) -> !202646 (merged) -
remove table from allowed_to_be_missing_foreign_keyinspec/lib/gitlab/database/sharding_key_spec.rb-> !202032 (merged)
Edited by Tomasz Skorupa