ubiquitous-invention/docs/operations/README.md
Randall Stillwell 93565cd94c ops(db): reconcile CT 102 drift — stamp ledger, add missing 0002 tables
The `tasks` Postgres on CT 102 was bootstrapped years ago with
`drizzle-kit push`, which writes schema but skips the ledger. As of
today the ledger contained zero rows and the schema was missing
`markdown_backlog_items` + `cursor_sync_mappings` (migration 0002
ran on neither code path). Migration 0007's ALTER on
markdown_backlog_items had silently failed because of this; audit_log
was added manually.

The one-shot at docs/operations/2026-06-02-db-drift-reconcile.sql
created the two missing tables at the final post-0007 shape (skipping
0002's now-obsolete FK-to-objects intermediate state, which 0003
would have immediately rewritten anyway) and stamped all 8 migrations
with their sha256 + journal `when` so drizzle's
`lastDbMigration.created_at < migration.folderMillis` gate treats
them as already applied.

`pnpm db:migrate` is now a clean no-op against this DB. Future
migrations work normally.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 16:17:42 -05:00

749 B

Operations runbooks

One-shot scripts and notes for operational fixes that aren't part of the normal app flow. Each file is dated so the chronology is obvious.

Anything in this folder is historical. Don't re-run scripts here without reading them first — most assume a specific broken state and will fail or corrupt a healthy one.

Inventory

Date File What it fixed
2026-06-02 2026-06-02-db-drift-reconcile.sql Reconciled CT 102 tasks DB after years of drizzle-kit push left the migration ledger empty. Created the two tables that had never made it in (markdown_backlog_items, cursor_sync_mappings) and stamped all 8 migrations as applied.