ADR-008: ORM and data access
Estado
Accepted — 2026-08-23
Contexto
NestJS + PostgreSQL + hexagonal ligera. Se necesita tipado, migraciones y productividad de un equipo pequeño. Misma elección que IVPrior.
Decisión
Prisma como ORM oficial, solo en infrastructure.
- Repositorios implementan puertos del dominio.
- Use cases / domain no importan
@prisma/client. - Migraciones Prisma versionadas en el repo.
- SQL crudo permitido para reportes de dashboard / aging pesado, detrás del mismo puerto.
Alternativas
| Opción | Nota |
|---|---|
| Prisma | Elegida — DX, tipos, factory |
| TypeORM | Más “ORM clásico”, peor DX TS moderna |
| Drizzle | Más SQL-like; menos continuidad con IVPrior |
| Knex solo | Demasiado bajo nivel para el MVP |
Consecuencias
prisma generateforma parte demake install/ CI cuando exista stack.- JSONB no sustituye tablas de Invoice, Promise o Message.