0002 — Drizzle ORM para acesso ao Postgres¶
- Status: aceito
- Data: (rascunho — confirmar)
Contexto¶
Precisamos de acesso tipado ao Postgres, com migrations versionadas e schema declarado em TypeScript (compartilhável entre web e pacotes).
Decisão¶
Usar Drizzle ORM (com drizzle-kit para migrations), schema em arquivos TS
sob packages/database/src/schema.
Alternativas consideradas¶
- Prisma — DX excelente, mas camada de engine pesada e menos amigável a serverless/edge na época.
- Kysely puro — ótimo query builder (e está nas deps), mas sem migrations/declaração de schema integradas.
Consequências¶
- Positivas: schema é TypeScript puro, tipos derivados, migrations SQL versionadas em
migrations/. - Trade-offs: os arquivos de schema importam vizinhos via barrel
./index, criando 9 ciclos (ver dependency-cruiser) — corrigível com imports diretos. - Impacto: o ERD é gerado deterministicamente do schema (
pnpm db:dbml).