refactor(db): fold the no-op migration 03 into 01 while the branch is unmerged

↗ view on GitHub · Amal · 2026-08-12 · dcb85a1a

WHY THIS MATTERS
Migration 20260811_03 dropped a NOT NULL that 01 never shipped and re-added
an identical foreign key - a complete no-op, because 01 had been rewritten
after 03 was authored. Landing both would leave the open-source migration
trail asking "which one is authoritative?" forever. Since none of these
migrations have shipped anywhere (they are all new in this PR), the honest
history is one final migration.

WHAT IS THE RULE FOR EDITING MIGRATIONS?
Migrations are append-only once released, freely editable before. This
branch is unmerged, so 01 is still editable; after merge, semantics changes
would require a new dated migration.

HOW
- 20260811_03_deletable_default_workflows.sql deleted; 01 already contains
  its end state (nullable workflow_id, on delete set null).
- The redundant default_workflow_installations_user_idx dropped from 01 and
  schema.sql - the unique(user_id, default_key) constraint's index already
  serves user_id lookups. Postgres implements unique constraints as
  b-tree indexes; a separate single-column index on the same leading
  column is pure write overhead.

Found by review of PR #309.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E4PXCdenNH5Mqhm5Sre9Zs
Repository open-legal-products/mike
Author Amal <mamalanand3@gmail.com>
Authored
Committed
Parents b2116375
Stats 3 files changed , -21
Part of Refactor workflows into defaults, add-ons, and quick actions

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-dcb85a1a.md from inside the repo you want the change in.

⬇ Download capture-commit-dcb85a1a.md