Pular para o conteúdo
Tecnologia

Prisma é ORM type-safe moderno. Auto-complete, migrations, Prisma Studio. Developer experience excelente, usado por Vercel e Supabase.

Conceitos Principais

Prisma Schema

schema.prisma: models, relations, enums. Single source of truth. Gera Prisma Client e migrations.

Prisma Client

Auto-generated, type-safe. prisma.user.findMany(). Auto-complete em IDE. Compile-time safety.

Relations

1-to-1, 1-to-many, many-to-many. Declarativo no schema. Eager/lazy loading.

Migrations

prisma migrate dev. Auto-generates SQL. Git tracked. prisma migrate deploy em produção.

Passo a Passo

  1. Setup Prisma: npm install prisma @prisma/client. npx prisma init. Cria schema.prisma e .env.
  2. Define Schema: model User { id Int @id @default(autoincrement()); email String @unique; posts Post[] }. model Post { id Int @id; authorId Int; author User @relation(fields: [authorId], references: [id]) }.
  3. Generate Client: npx prisma generate. Cria Prisma Client em node_modules. Import: const prisma = new PrismaClient().
  4. CRUD Operations: Create: await prisma.user.create({ data: { email: "..." }}). Read: await prisma.user.findMany(). Update: await prisma.user.update({ where: { id: 1 }, data: { email: "..." }}). Delete: await prisma.user.delete({ where: { id: 1 }}).
  5. Migrations: npx prisma migrate dev --name init. Aplica em dev DB. npx prisma migrate deploy em CI/CD.

Boas Praticas

Recomendacoes

• Schema como single source of truth

• Prisma Studio para debug (npx prisma studio)

• Include relations explicitamente

• Use transactions para operações múltiplas

• Connection pooling (PgBouncer)

• prisma.$queryRaw para queries complexas

Erros Comuns

Evite estes erros

• Não usar include (N+1)

• Migrations não versionadas

• Não usar transactions

• Prisma Client em edge (use Data Proxy)

• Ignoring slow queries

Checklist

  • Prisma instalado
  • Schema definido
  • Client gerado
  • CRUD funcionando
  • Migrations aplicadas
  • Relations testadas