2f507e5721
Deploying the three-tier series onto OHM crash-looped on migration 029: `NOT NULL constraint failed: cached_branches__new.collection_id`, then a UNIQUE collision. Root cause: the v0.39.0 default→ohm re-stamp updated cached_rfcs.project_id but NOT the entry-satellite tables, so ~1.3k cached_branches rows were stranded at project_id='default' — which 029's per-project collection backfill can't map (NULL), some of which also duplicate freshly-re-mirrored 'ohm' rows (UNIQUE), and some of which reference entries that no longer exist. Fix — a repair prologue at the top of 029 (no schema change): - drop stale rows that duplicate an already-correctly-stamped row (keep the fresh copy) for the branch-keyed tables; - re-derive each satellite's project_id from its entry (cached_rfcs, by slug); - drop rows whose entry no longer exists (stale cache, rebuildable from gitea). A no-op on clean/fresh deployments (empty or consistent satellites). Validated against a snapshot of the live OHM DB: 029→032 apply cleanly, zero NULL collection_id, FK check clean, watches/RFCs/branch_visibility preserved, cached_branches 1397 → 1291 (−67 no-RFC, −39 dups). Fresh-install path unchanged: existing 029 suite green + a new regression test for the stale/dup/orphan shape. Full backend suite 547 passed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2 lines
7 B
Plaintext
2 lines
7 B
Plaintext
0.46.1
|