[debt] Las migraciones no crean cash_register_session, cash_movement ni operating_day #14

Open
opened 2026-10-02 18:47:33 +00:00 by Carlos · 0 comments
Member

Qué es la deuda

Las migraciones del repositorio no llevan la base de datos al contrato actual:

  • La única migración, apps/api/migrations/app/20260928T1910_init, va de una base vacía al esquema a6d994c8…. Ese esquema no tiene cash_register_session, cash_movement ni operating_day.
  • El contrato actual (src/prisma/contract.json, storageHash) y la referencia de la base (migrations/app/refs/db.json) están en b5e61e3b…, que sí incluye esas tablas.
  • No hay ninguna migración de a6d994c8… a b5e61e3b…. Lo más probable es que los cambios se aplicaran con prisma db update, que según la documentación de Prisma 8 aplica el cambio sin escribir directorio de migración.

Qué estamos pagando hoy

  • Una base nueva (otra computadora, staging, producción) creada con db migrate queda sin caja ni día de operación, y el sistema falla al abrir caja o día.
  • No hay historial de cómo llegó la base al estado actual, así que no se puede revisar ni revertir el cambio.

Arreglo propuesto

  • Confirmar el diagnóstico con npx prisma migration status desde apps/api
  • Generar la migración faltante con prisma migration plan --from a6d994c8… y revisarla
  • Probar db migrate contra una base vacía y verificar que el esquema resultante coincida con el contrato
  • Documentar en el README que los cambios de contrato se aplican con migration plan + db migrate, y que db update es solo para la base local

Techo de esta ronda

Solo poner al día las migraciones y documentar el flujo. Fuera: validar en CI que el contrato y las migraciones estén sincronizados (#7).

Superficie

Contrato Prisma (apps/api/src/prisma)

Módulos

Base de datos / contrato Prisma, Caja / sesiones de caja, Día de operación, CI / infra

Esfuerzo

S — un PR chico

Riesgo de no tocarlo

Alto (seguridad, datos, o bloquea el próximo corte)

### Qué es la deuda Las migraciones del repositorio no llevan la base de datos al contrato actual: - La única migración, `apps/api/migrations/app/20260928T1910_init`, va de una base vacía al esquema `a6d994c8…`. Ese esquema **no** tiene `cash_register_session`, `cash_movement` ni `operating_day`. - El contrato actual (`src/prisma/contract.json`, `storageHash`) y la referencia de la base (`migrations/app/refs/db.json`) están en `b5e61e3b…`, que sí incluye esas tablas. - No hay ninguna migración de `a6d994c8…` a `b5e61e3b…`. Lo más probable es que los cambios se aplicaran con `prisma db update`, que según la documentación de Prisma 8 aplica el cambio sin escribir directorio de migración. ### Qué estamos pagando hoy - Una base nueva (otra computadora, staging, producción) creada con `db migrate` queda sin caja ni día de operación, y el sistema falla al abrir caja o día. - No hay historial de cómo llegó la base al estado actual, así que no se puede revisar ni revertir el cambio. ### Arreglo propuesto - [ ] Confirmar el diagnóstico con `npx prisma migration status` desde `apps/api` - [ ] Generar la migración faltante con `prisma migration plan --from a6d994c8…` y revisarla - [ ] Probar `db migrate` contra una base vacía y verificar que el esquema resultante coincida con el contrato - [ ] Documentar en el README que los cambios de contrato se aplican con `migration plan` + `db migrate`, y que `db update` es solo para la base local ### Techo de esta ronda Solo poner al día las migraciones y documentar el flujo. Fuera: validar en CI que el contrato y las migraciones estén sincronizados (#7). ### Superficie Contrato Prisma (apps/api/src/prisma) ### Módulos Base de datos / contrato Prisma, Caja / sesiones de caja, Día de operación, CI / infra ### Esfuerzo S — un PR chico ### Riesgo de no tocarlo Alto (seguridad, datos, o bloquea el próximo corte)
Miguel was assigned by Carlos 2026-10-02 20:05:18 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: RynextTechnologies/PDV#14