Add NOT NULL for sharding key on issue_links
What does this MR do and why?
Add NOT NULL constraint to issue_links.namespace_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 have finalized the backfill migration for this column.
- 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 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