GraphQL → Prisma
Suíte de engenharia de banco de dados fullstack e Prisma ORM

Conversor de GraphQL SDL para Esquema Prisma (Modelos e Relações)

Traduza tipos de objetos, enums e diretivas da linguagem de definição de esquema GraphQL (SDL) em modelos e relações limpas do Prisma ORM.

Privacidade 100% no cliente
Zero transmissão ao servidor
Predefinições:
Opções do Prisma ORM
postgresql•CUID
Definição de Esquema GraphQL (SDL)
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

enum Role {
  OWNER
  ADMIN
  MEMBER
  VIEWER
}

enum SubscriptionStatus {
  TRIALING
  ACTIVE
  PAST_DUE
  CANCELED
}

model User {
  id String @id @default(cuid())
  email String @unique
  name String?
  avatarUrl String?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  memberships Membership[]
  ownedWorkspaces Workspace[]
  auditLogs AuditLog[]
}

model Workspace {
  id String @id @default(cuid())
  slug String @unique
  name String
  ownerId String
  subscription Subscription?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  owner User @relation(fields: [ownerId], references: [id])
  memberships Membership[]
  projects Project[]
}

model Membership {
  id String @id @default(cuid())
  role Role
  userId String
  workspaceId String
  createdAt DateTime @default(now())

  user User @relation(fields: [userId], references: [id])
  workspace Workspace @relation(fields: [workspaceId], references: [id])
}

model Invoice {
  id String @id @default(cuid())
  subscription Subscription
  subscriptionId String
  amountDue Float
  amountPaid Float
  paid Boolean
  pdfUrl String?
  createdAt DateTime @default(now())
}

model Project {
  id String @id @default(cuid())
  workspaceId String
  name String
  description String?
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  workspace Workspace @relation(fields: [workspaceId], references: [id])
}

model AuditLog {
  id String @id @default(cuid())
  userId String
  action String
  ipAddress String?
  createdAt DateTime @default(now())

  user User @relation(fields: [userId], references: [id])
}
Tipos GraphQL Analisados8 DefiniçõesTipos de objetos, enums e interfaces reconhecidos no SDL
Modelos Prisma Sintetizados6 Modelos & 10 RelaçõesModelos ORM com mapeamento relacional estruturado
Zero Transmissão Externa100% Client-SideProcessamento 100% local com total privacidade de dados

Processamento no Navegador

Geração de código rápida e eficiente na memória local.

Privacidade Garantida

Seus esquemas GraphQL nunca são enviados a servidores externos.

Pronto para Produção

Esquemas formatados prontos para integração no seu projeto Prisma.

Referência técnica e guia de arquitetura

Conversor de GraphQL SDL para Esquema Prisma (Modelos e Relações) — Guia de referência

Traduza tipos de objetos, enums e diretivas da linguagem de definição de esquema GraphQL (SDL) em modelos e relações limpas do Prisma ORM.

Parâmetros principais e controles

Estratégia de IDEnum (cuid | uuid | autoincrement)

Define o gerador de chave primária no Prisma (@id @default(cuid()), uuid() ou autoincrement()).

Padrão: cuid()
Modo de relações explícitasBoolean (explicit | inferred)

Gera automaticamente chaves estrangeiras explícitas e diretivas @relation(fields: [...], references: [...]) entre os modelos.

Padrão: explicit
Mapeamento de diretivasBoolean (enabled | disabled)

Converte diretivas GraphQL SDL como @map, @unique e @default nos atributos correspondentes do Prisma.

Padrão: enabled
Mapeamento de escalar DateTimeString (DateTime | Timestamp | Int)

Mapeia escalares customizados do GraphQL (como DateTime) para tipos nativos DateTime do Prisma.

Padrão: DateTime

Dicas profissionais e melhores práticas

Ao declarar relações 1

Ao declarar relações 1:N ou M:N em GraphQL SDL, o conversor cria automaticamente a relação inversa e os campos de chave estrangeira exigidos pelo validador do Prisma.

Propriedades marcadas com '!' no

Propriedades marcadas com '!' no GraphQL SDL são mapeadas como campos obrigatórios no Prisma, enquanto campos sem '!' recebem o modificador opcional '?'.

Suporte nativo a Enums no banco de dados

Blocos 'enum' do GraphQL SDL são convertidos em definições 'enum' do Prisma, que geram tipos ENUM nativos no PostgreSQL e MySQL durante as migrações.

Problemas comuns e solução de problemas

Ausência de campo inverso ou chave estrangeira na relação

O Prisma exige que ambos os lados de uma relação sejam declarados no modelo. Se o SDL contiver apenas a referência unilateral (ex: author: User), o conversor sintetiza o lado inverso (posts: Post[]) e o campo escalar (authorId).

Escalares customizados não reconhecidos (JSON, DateTime, UUID)

Declare os escalares no topo do arquivo SDL com 'scalar DateTime' ou ajuste a tabela de mapeamento para evitar que sejam tratados como simples String.

Perguntas frequentes (FAQ)

Como o conversor traduz relações muitos-para-muitos (M:N)?▼

Relações em que ambos os tipos se referenciam como listas (ex: tags: [Tag!]! e posts: [Post!]!) são convertidas para a sintaxe de relação M:N implícita do Prisma, gerenciando a tabela de junção de forma transparente.

O que acontece com os tipos Query, Mutation e Subscription?▼

O Prisma Schema é uma linguagem de modelagem de banco de dados. Tipos de operação GraphQL (Query, Mutation, Subscription) e tipos input são filtrados, preservando apenas os modelos de dados e enums.

Posso manter nomes de tabelas e colunas customizados com @map e @@map?▼

Sim. Diretivas do SDL e convenções de nomenclatura (como snake_case para tabelas e camelCase no GraphQL) podem ser mapeadas com @map("coluna") e @@map("tabela").

O meu esquema GraphQL é enviado para algum servidor?▼

Não. Todo o processamento léxico e geração do esquema Prisma ocorrem 100% no cliente dentro do seu navegador, sem envio de dados para servidores externos.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador de Entidades TypeORM a partir de SQL DDL (Entidades TypeScript)Desenvolvimento

Converta instruções SQL CREATE TABLE DDL em classes de entidade TypeORM em TypeScript com decoradores @Column, @PrimaryGeneratedColumn, relações e índices.

Abrir ferramenta→
Guia do Desenvolvedor do Conversor de SQL CREATE TABLE DDL para Esquema ZodDesenvolvimento

Converta esquemas de tabelas SQL, tipos de dados, restrições e colunas anuláveis em esquemas de objetos Zod estritamente tipados em TypeScript.

Abrir ferramenta→
Conversor de Docker Compose para Manifestos Kubernetes (Compose para K8s)Desenvolvimento

Converta serviços, variáveis de ambiente, portas e volumes de docker-compose.yml em manifestos YAML de Deployment e Service prontos para Kubernetes.

Abrir ferramenta→
Guia do Desenvolvedor: Conversor de JSON para Variáveis de Ambiente .env (Aplanar e Exportar)Desenvolvimento

Aplana estruturas JSON aninhadas em variáveis .env em SNAKE_CASE maiúsculo com delimitadores e opções de prefixo personalizáveis.

Abrir ferramenta→
Gerador de Esquemas SQL DDL para Drizzle ORM (PostgreSQL, MySQL, SQLite)Desenvolvimento

Converta instruções SQL CREATE TABLE em esquemas fortemente tipados do Drizzle ORM com definições pgTable, mysqlTable e sqliteTable.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Schemas Valibot a partir de JSON (Validação Modular TypeScript)Desenvolvimento

Converta dados JSON em esquemas Valibot leves e compatíveis com tree-shaking utilizando v.object, v.string, v.number e validadores de array.

Abrir ferramenta→