GraphQL → Prisma
Suite d'ingénierie de base de données fullstack et Prisma ORM

Convertisseur GraphQL SDL vers Schéma Prisma (Modèles & Relations)

Convertissez les types d'objets, énumérations et directives du langage SDL GraphQL en modèles et relations Prisma ORM propres et optimisés.

Confidentialité 100% côté client
Zéro transmission au serveur
Préréglages :
Options Prisma ORM
postgresql•CUID
Définition de Schéma 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])
}
Types GraphQL Reconnus8 DéfinitionsTypes d'objets, énumérations et interfaces identifiés dans le SDL
Modèles Prisma Générés6 Modèles & 10 RelationsModèles ORM propres avec clés étrangères relationnelles
Zéro Transmission Serveur100% Client-SideTraitement pur navigateur garantissant la confidentialité des données

Exécution Côté Client

Traitement haute performance sans latence serveur.

Confidentialité Absolue

Vos définitions de schéma restent strictement dans votre navigateur.

Prêt pour la Production

Schémas Prisma validés prêts pour le déploiement immédiat.

Référence technique et guide d'architecture

Guide développeur du convertisseur GraphQL SDL vers schéma Prisma — Guide de référence

Convertissez les types d'objets, énumérations et directives du langage SDL GraphQL en modèles et relations Prisma ORM propres et optimisés.

Paramètres clés et contrôles

Stratégie d'identifiant (ID)Enum (cuid | uuid | autoincrement)

Définit le générateur de clé primaire dans Prisma (@id @default(cuid()), uuid() ou autoincrement()).

Par défaut : cuid()
Mode de relations explicitesBoolean (explicit | inferred)

Génère automatiquement les clés étrangères explicites et les attributs @relation(fields: [...], references: [...]) entre modèles associés.

Par défaut : explicit
Mappage des directivesBoolean (enabled | disabled)

Convertit les directives personnalisées GraphQL SDL (@map, @unique, @default) en attributs de modèle Prisma équivalents.

Par défaut : enabled
Mappage du scalaire DateTimeString (DateTime | Timestamp | Int)

Mappe les scalaires personnalisés GraphQL (ex. DateTime) vers le type natif DateTime de Prisma.

Par défaut : DateTime

Conseils de pro et bonnes practices

Lors de la définition de relations 1

Lors de la définition de relations 1:N ou M:N en GraphQL SDL, le convertisseur synthétise automatiquement la relation inverse et la clé étrangère pour satisfaire le compilateur Prisma.

Les champs marqués d'un point

Les champs marqués d'un point d'exclamation (!) en SDL deviennent des champs obligatoires dans Prisma, tandis que les champs sans '!' reçoivent le modificateur optionnel '?'.

Gestion native des énumérations (Enums)

Les blocs 'enum' GraphQL sont convertis directement en énumérations Prisma, se traduisant par des types ENUM natifs dans PostgreSQL et MySQL lors des migrations.

Pièges courants et dépannage

Absence de référence inverse ou de clé étrangère dans la relation Prisma

Prisma impose que les deux extrémités d'une relation soient explicitées. Si le SDL ne contient qu'une seule référence (ex. author: User), le convertisseur ajoute automatiquement le champ inverse (posts: Post[]) et le scalaire (authorId).

Scalaires GraphQL personnalisés non reconnus (JSON, DateTime, UUID)

Déclarez les scalaires au début du schéma SDL via 'scalar DateTime' ou spécifiez le mappage approprié dans l'outil pour éviter une conversion par défaut en String.

Foire aux questions (FAQ)

Comment le convertisseur traite-t-il les relations Plusieurs-à-Plusieurs (M:N) ?▼

Lorsque deux modèles se référencent mutuellement sous forme de listes (ex. tags: [Tag!]! et posts: [Post!]!), le convertisseur produit une relation M:N implicite Prisma, qui gère automatiquement la table de jointure.

Que deviennent les types Query, Mutation et Subscription ?▼

Le schéma Prisma est strictement dédié à la modélisation de base de données. Les opérations racines GraphQL (Query, Mutation, Subscription) ainsi que les types input sont écartés pour ne conserver que les entités persistantes.

Peut-on personnaliser le nom des tables et des colonnes avec @map et @@map ?▼

Oui, les directives GraphQL ou les règles de nommage (ex. tables en snake_case et types en camelCase) sont préservées via les attributs Prisma @map("colonne") et @@map("table").

Mes schémas GraphQL sont-ils traités de manière sécurisée et confidentielle ?▼

Absolument. Toute l'analyse syntaxique et la génération du schéma Prisma s'effectuent intégralement côté client dans votre navigateur, sans aucun transfert de données vers des serveurs tiers.

Outils et utilitaires connexes

Tous les outils →
Guide Développeur : Générateur d'entités TypeORM à partir de DDL SQL (Entités TypeScript)Développement

Convertissez vos instructions SQL CREATE TABLE DDL en classes d'entités TypeScript TypeORM propres avec @Column, @PrimaryGeneratedColumn, relations et index.

Ouvrir l'outil→
Guide du Développeur pour le Convertisseur SQL CREATE TABLE DDL vers Schéma ZodDéveloppement

Traduisez les schémas de tables SQL, types de données, contraintes et colonnes nullables en schémas d'objets Zod fortement typés pour TypeScript.

Ouvrir l'outil→
Convertisseur Docker Compose vers Manifestes Kubernetes (Compose vers K8s) - Guide DéveloppeurDéveloppement

Convertissez les services, variables d'environnement, ports et montages de volumes docker-compose.yml en manifestes YAML Kubernetes Deployment et Service.

Ouvrir l'outil→
Guide du Développeur : Convertisseur JSON en Variables d'Environnement .env (Aplatir & Exporter)Développement

Aplatissez les charges utiles JSON imbriquées en configurations .env en SNAKE_CASE majuscule avec délimiteurs et préfixes personnalisables.

Ouvrir l'outil→
Générateur de Schémas SQL DDL vers Drizzle ORM (PostgreSQL, MySQL, SQLite) - Guide DéveloppeurDéveloppement

Convertissez vos instructions SQL CREATE TABLE en schémas Drizzle ORM fortement typés avec des définitions pgTable, mysqlTable et sqliteTable.

Ouvrir l'outil→
Guide Développeur : Générateur de Schémas Valibot depuis JSON (Validation TypeScript Modulaire)Développement

Transformez vos données JSON en définitions de schémas Valibot légères et compatibles tree-shaking avec v.object, v.string, v.number et des validateurs de tableaux.

Ouvrir l'outil→