fix(db): aislar tracking de migraciones por módulo + backfill #5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/per-module-migrations"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Las 5 llamadas a migrate() compartían drizzle.__drizzle_migrations. El
migrator de drizzle decide qué aplicar sólo por timestamp (order by
created_at desc limit 1); con tabla compartida el max es global, así que
una migración nueva de un módulo con
whenmenor al max ya registrado porotro módulo se saltaba en silencio. Funcionaba en DB limpia por el orden de
generación; rompía en migraciones incrementales.
Fix: cada módulo trackea en _drizzle_migrations<módulo> (migrationsTable).
Backfill idempotente siembra cada tabla por módulo desde la legacy (match
por hash) para no re-aplicar DDL en prod.
Verificado en Postgres desechable: DB limpia, estado prod (backfill, 0
re-aplicación) y repro del skip cross-módulo (viejo salta, nuevo aplica).
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com