Add NOT NULL for sharding key on epic_user_mentions
What does this MR do and why?
Add NOT NULL constraint to epic_user_mentions.group_id column.
- No
presence: truecheck is added in the model because we're also populating the column with a "BEFORE INSERT OR UPDATE" trigger.- Objects created in rails are allowed to have a project_id=nil, the trigger would populate it before being committed.
- We use async validation for this because the table is fairly big and the non-async version exceeds the timing guidelines.
- No follow up issue is created to finalize the async validation because this will be tracked in #493768 (closed)
- The backfill migration for this column is completed and has been finalized.
The sharding key will be used to determine what Organization the row belongs to.
References
- Organization Isolation and Sharding Keys: https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/organization/isolation/
- Sharding Key (Cells) Development Guide: https://docs.gitlab.com/ee/development/cells/#defining-a-sharding-key-for-all-cell-local-tables
- Related to #493768 (closed)
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.
Screenshots or screen recordings
N/A
How to set up and validate locally
N/A
Edited by Shane Maglangit