Mudei de Prisma para Drizzle em produção. Aqui está o que ninguém avisa antes
Prisma é o ORM padrão para Node.js com banco relacional. Drizzle é o challenger que cresceu rápido. Migrei um projeto real e quero documentar o que aprendi.
Por que saí do Prisma
O Prisma gera um cliente opaco a partir do schema. Para queries simples é ótimo. Para joins complexos com filtros dinâmicos, você fica lutando contra a abstração.
O overhead de cold start em funções serverless também foi real. O Prisma carrega mais do que o necessário para ambientes Vercel/Lambda.
O que o Drizzle entrega diferente
SQL com tipos. Você escreve queries que parecem SQL, com autocomplete e validação em tempo de compilação. O resultado é previsível porque você sabe o que está mandando para o banco.
Bundle menor. Para serverless, isso importa.
Flexibilidade. Joins com condições dinâmicas, queries com CTEs, subqueries: tudo é natural porque é SQL com açúcar sintático.
O que ninguém avisa
Migração é mais manual. Você define o schema, gera o SQL e decide quando rodar. Quem está acostumado com prisma migrate dev vai estranhar.
A comunidade é menor. Quando você bate em um caso de uso não documentado, tem menos Stack Overflow e mais leitura de código-fonte.
Se você já sabe SQL, a curva é quase zero. Se você aprendeu banco via Prisma e pouco SQL, vai ser mais íngreme.
Vocês usam ORM por convicção ou por convenção do projeto?