Prisma ORM · 2026-07-12

Prisma ORM com Agentes de IA: Modelagem e Consultas com Claude Code e Codex

Tutorial completo de Prisma ORM com agentes de IA. Aprenda a modelar bancos de dados, criar consultas e gerenciar migracoes usando Claude Code e Codex como assistentes.

Prisma ORM e a ferramenta de acesso a banco de dados mais moderna do ecossistema TypeScript, oferecendo type safety completo, schema declarativo e migracoes automaticas. Quando combinado com agentes de IA, o Prisma ORM agentes IA permite modelar bancos de dados complexos e escrever consultas otimizadas em minutos. Este tutorial cobre modelagem, relacoes, consultas e migracoes usando Claude Code e Codex como assistentes de banco de dados.

Sumario

Setup do Prisma com Claude Code

Claude Code pode configurar o Prisma em projetos novos ou existentes:

Instalacao em projeto Next.js

claude "Configure Prisma em um projeto Next.js 16. Instale prisma e @prisma/client via npm. Inicialize o Prisma com 'npx prisma init' apontando para SQLite (ou PostgreSQL se preferir). Crie o cliente Prisma em src/lib/prisma.ts com: - PrismaClient singleton (evita multiplas conexoes em dev) - Global para desenvolvimento (hot reload) - Export default prisma"

Cliente Prisma singleton

Claude Code gera o padrao correto para evitar multiplas instancias do PrismaClient em desenvolvimento:

claude "Crie src/lib/prisma.ts com o padrao singleton: - Declare globalThis.prisma para cache global - Se nao existir, crie new PrismaClient() - Em producao: new PrismaClient() - Em desenvolvimento: globalThis.prisma - Exporte o prisma como default"

Esse padrao evita o erro classico de multiplas conexoes com hot reload no Next.js.

Schema e models com Codex

Codex e o agente ideal para gerar o schema do Prisma. Sua capacidade de gerar codigo estruturado e repetitivo brilha aqui.

Modelo de usuario

opencode "Crie o model User no schema.prisma: - id: String @id @default(uuid()) - name: String - email: String @unique - password: String - role: Role @default(USER) - createdAt: DateTime @default(now()) - updatedAt: DateTime @updatedAt - tasks: Task[] (relacao 1:N) - profile: Profile? (relacao 1:1) Defina o enum Role: USER, ADMIN"

Modelo de tarefa

opencode "Crie o model Task no schema.prisma: - id: String @id @default(uuid()) - titulo: String @db.VarChar(200) - descricao: String? - status: TaskStatus @default(PENDING) - prioridade: Int @default(2) - userId: String - user: User @relation(fields: [userId], references: [id]) - criadaEm: DateTime @default(now()) @map('criada_em') - concluidaEm: DateTime? @map('concluida_em') - createdAt: DateTime @default(now()) - updatedAt: DateTime @updatedAt Defina o enum TaskStatus: PENDING, IN_PROGRESS, COMPLETED"

Codex gera o schema com tipos corretos, decorators apropriados e enums — sem erros de sintaxe.

Relacionamentos entre tabelas

Relacionamentos sao onde o Prisma realmente brilha — e onde Claude Code mostra sua compreensao de modelagem de dados.

Relacao 1:1 com Profile

claude "Adicione o model Profile ao schema: - id: String @id @default(uuid()) - bio: String? - avatar: String? - telefone: String? - userId: String @unique - user: User @relation(fields: [userId], references: [id]) Atualize o model User para incluir: - profile: Profile?"

Relacao N:N com Tags

claude "Adicione model Tag e relacao N:N com Task: - Tag: id, nome (String @unique) - Tabela pivô implicita: TaskTag (Prisma cria automaticamente) - Task deve ter: tags: Tag[] - Tag deve ter: tasks: Task[] Use @relation name para nomear a relacao."

Relacao 1:N com Comentarios

claude "Adicione model Comment: - id: String @id @default(uuid()) - conteudo: String - taskId: String - task: Task @relation(fields: [taskId], references: [id]) - userId: String - user: User @relation(fields: [userId], references: [id]) - createdAt: DateTime @default(now()) Atualize Task e User para incluir a relacao inversa."

O resultado e um schema completo com todas as relacoes — Claude Code ajusta os models automaticamente para manter a consistencia.

Consultas avancadas com Claude Code

Com o schema pronto, Claude Code pode gerar consultas complexas utilizando a API type-safe do Prisma.

Consultas com filtros

claude "Crie funcoes em src/lib/queries/task-queries.ts: - getTasksByUser(userId: string, status?: TaskStatus): busca tarefas do usuario, opcionalmente filtradas por status, ordenadas por criadaEm desc - getTaskWithDetails(taskId: string): busca tarefa com usuario, tags e comentarios (include aninhado) - getTasksByPriority(prioridade: number): busca tarefas com prioridade especifica, inclui dados do usuario (select especifico: name, email) - searchTasks(query: string): busca tarefas por titulo (contains, case insensitive)"

Paginacao e agregacao

claude "Crie funcoes de paginacao e agregacao: - getPaginatedTasks(params: { page, pageSize, userId, status? }): usa skip e take, retorna { tasks, total, totalPages } - getTaskStats(userId: string): retorna { total, pending, inProgress, completed } usando groupBy e count do Prisma - getRecentActivity(userId: string, days: number): busca tarefas criadas nos ultimos N dias, ordenadas por criadaEm"

Transacoes

claude "Crie uma transacao Prisma que: - Cria uma tarefa - Adiciona tags a ela (cria as tags se nao existirem com connectOrCreate) - Cria um comentario inicial 'Tarefa criada' - Tudo em uma transacao ($transaction) - Se qualquer passo falhar, tudo e revertido"

Migracoes e versionamento

Prisma gerencia migracoes de banco automaticamente. Claude Code pode gerenciar todo o ciclo de vida:

Criacao de migracoes

claude "Execute 'npx prisma migrate dev --name init' para criar a migracao inicial. Verifique se a pasta prisma/migrations foi criada com o SQL correto. Se houver dados existentes, use 'npx prisma db push' para desenvolvimento rapido."

Seed do banco

claude "Crie prisma/seed.ts que popula o banco: - 2 usuarios: um admin e um normal - 5 tarefas com status variados - 3 tags: 'frontend', 'backend', 'urgente' - Use PrismaClient para inserir os dados - Adicione script 'seed' no package.json: 'npx prisma db seed'"

Atualizacao de schema

claude "Adicione o campo 'categoria' ao model Task (enum Categoria). Execute 'npx prisma migrate dev --name add-categoria' para criar a nova migracao. Verifique se o Prisma Client foi regenerado automaticamente."

Com Claude Code e Codex orquestrados, voce gerencia todo o ciclo de modelagem de dados — do schema inicial as migracoes incrementais — sem escrever SQL manualmente.

Exemplo pratico: Modelo de e-commerce

Vamos criar o schema completo de um e-commerce para demonstrar modelagem avancada com agentes.

Schema completo

claude "Crie o schema Prisma para um e-commerce: - Product: id, name, description, price, stock, images (String[]), categoryId - Category: id, name, slug (unique), parentId? (auto-relacionamento) - Order: id, userId, status (enum), total, createdAt - OrderItem: id, orderId, productId, quantity, unitPrice - Review: id, rating (Int 1-5), comment, productId, userId - Cart: id, userId (unique) - CartItem: id, cartId, productId, quantity Inclua todas as relacoes e enums necessarios."

Queries do e-commerce

claude "Crie queries para o e-commerce: - getProductsByCategory(categorySlug, page, pageSize) - getProductWithReviews(productId) - getOrdersByUser(userId, status?) - getCartWithItems(cartId) com soma do total - searchProducts(query, minPrice?, maxPrice?, categoryId?) Todas com tipagem completa do Prisma."

Em menos de 30 minutos, voce tem o schema completo de um e-commerce com produtos, categorias (inclusive auto-relacao), pedidos, reviews e carrinho — tudo modelado e consultado com agentes de IA.

FAQ — Perguntas Frequentes

Preciso saber SQL para usar Prisma com agentes de IA?

Nao. Prisma abstrai o SQL com sua linguagem de schema declarativa e API type-safe. Claude Code e Codex geram o schema.prisma e as queries automaticamente. No entanto, entender SQL ajuda a revisar as consultas geradas e otimizar queries complexas.

Claude Code e Codex conhecem as relacoes do Prisma (1:1, 1:N, N:N)?

Sim. Ambos geram models com relacoes corretas, incluindo campos de chave estrangeira, relacoes bidirecionais e tabelas pivot para N:N. Basta descrever o relacionamento em linguagem natural.

Agentes de IA geram migracoes Prisma seguras?

Sim. Codex gera o schema e Claude Code executa "npx prisma migrate dev" para criar as migracoes. Para bancos existentes, o Prisma pode introspectar e gerar o schema automaticamente — Claude Code pode fazer isso.

Prisma com SQLite ou PostgreSQL: qual usar com agentes?

Para desenvolvimento local com agentes, SQLite e mais simples (zero configuracao). Para producao, PostgreSQL e recomendado. O Prisma abstrai as diferencas — voce pode comecar com SQLite e mudar para PostgreSQL trocando uma linha no schema.

Como depurar queries Prisma geradas por IA?

Use "prisma query logging" para ver as queries SQL geradas. Claude Code pode ativar o logging e analisar queries lentas. Peça: "Ative o log de queries do Prisma e identifique consultas N+1 no meu codigo".

Comece a modelar dados com agentes hoje

Prisma ORM agentes IA e a combinacao definitiva para modelagem de dados. Com Claude Code para relacoes complexas e consultas, e Codex para geracao de schemas e enums, voce cria modelos de banco de dados profissionais em minutos.

O Orquestra no Windows 11 e o ambiente ideal para conectar Claude Code e Codex lado a lado, com terminal dedicado para as migracoes Prisma, o Prisma Studio para visualizar dados, e os agentes gerando codigo em paralelo.

Baixe o Orquestra para Windows 11 e comcece seu teste gratis de 7 dias.

Links internos recomendados

Links externos recomendados

Pronto para orquestrar seus agentes?

Baixe o Orquestra para Windows 11 e comece a coordenar seus agentes de IA em um canvas infinito. Gratis por 7 dias.