Drizzle é ORM type-safe ultralight. Zero dependencies, SQL-like API. Roda em edge (Cloudflare Workers). Alternativa ao Prisma.
Conceitos Principais
Schema Definition
TypeScript code. export const users = pgTable("users", { id: serial("id").primaryKey(), email: text("email") }). Não precisa generate.
SQL-like API
db.select().from(users).where(eq(users.id, 1)). Familiar para quem conhece SQL. Type-safe.
Edge Compatible
Zero runtime dependencies. Runs em V8 isolates. Cloudflare Workers, Vercel Edge.
Migrations
drizzle-kit generate. drizzle-kit push. Manual ou auto. Git tracked.
Passo a Passo
- Install Drizzle: npm install drizzle-orm pg. npm install -D drizzle-kit. drizzle.config.ts para config.
- Define Schema: import { pgTable, serial, text } from "drizzle-orm/pg-core"; export const users = pgTable("users", { id: serial("id").primaryKey(), email: text("email").notNull().unique() });
- Create Client: import { drizzle } from "drizzle-orm/node-postgres"; import { Pool } from "pg"; const pool = new Pool({ connectionString }); export const db = drizzle(pool);
- Query Data: import { users } from "./schema"; const allUsers = await db.select().from(users); const user = await db.select().from(users).where(eq(users.id, 1));
- Migrations: npx drizzle-kit generate:pg. Gera SQL migrations. npx drizzle-kit push:pg para apply.
Boas Praticas
Recomendacoes
• Use para edge/serverless
• SQL-like queries são idiomáticas
• Git track migrations
• Connection pooling
• Type imports from schema
• Use with Neon, Supabase, Cloudflare D1
Erros Comuns
Evite estes erros
• Não usar em edge quando possível
• Comparar bundle size com Prisma Client
• Não entender SQL (Drizzle é thin)
• Migrations não trackadas
• Não aproveitar type-safety
Checklist
- Drizzle instalado
- Schema definido
- Client criado
- Queries type-safe
- Migrations configuradas
- Edge deployment testado