Skip to content

Add NOT NULL for sharding key on approvals

What does this MR do and why?

Add NOT NULL constraint to approvals.project_id column.

  • No presence: true check 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

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

Merge request reports

Loading