Ir para o conteúdo

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).