GraphQL → Prisma
Fullstack-Datenbank- & Prisma-ORM-Engineering-Suite

GraphQL SDL zu Prisma Schema Konverter (Models & Relations)

Übersetzen Sie GraphQL Schema Definition Language (SDL) Objekttypen, Enums und Direktiven in saubere Prisma ORM-Modelle und relationale Verknüpfungen.

100% clientseitige Privatsphäre
Null Serverübertragung
Voreinstellungen:
Prisma Generator & ORM Optionen
postgresql•CUID
GraphQL Schema-Definition (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])
}
Analysierte GraphQL-Typen8 DefinitionenIm SDL gefundene Objekttypen, Enums und Schnittstellen
Generierte Prisma-Modelle6 Modelle & 10 RelationenPräzise ORM-Modelle mit relationalen Verknüpfungen
Null Serverübertragung100% Client-SideReine Browser-Kompilierung im lokalen Speicher

Client-Side Verarbeitung

Hochleistungs-Verarbeitung direkt im Speicher Ihres Browsers.

Vollständige Datensicherheit

Keine sensiblen Schemadaten verlassen jemals Ihren Rechner.

Produktionsreife Ausgabe

Direkt in Prisma-Projekte integrierbare Schemadateien.

Technische Referenz & Architektur-Leitfaden

GraphQL SDL zu Prisma Schema Konverter — Referenz-Leitfaden

Übersetzen Sie GraphQL Schema Definition Language (SDL) Objekttypen, Enums und Direktiven in saubere Prisma ORM-Modelle und relationale Verknüpfungen.

Wichtige Parameter & Steuerelemente

ID-GenerierungsstrategieEnum (cuid | uuid | autoincrement)

Bestimmt das Attribut für Primärschlüssel in Prisma (@id @default(cuid()), uuid() oder autoincrement()).

Standard: cuid()
RelationsmodusBoolean (explicit | inferred)

Erzeugt automatisch explizite Prisma-Fremdschlüssel und @relation(fields: [...], references: [...])-Attribute zwischen Modellen.

Standard: explicit
Direktiven-MappingBoolean (enabled | disabled)

Überträgt benutzerdefinierte GraphQL-Direktiven wie @map, @unique und @default in entsprechende Prisma-Attribute.

Standard: enabled
DateTime-Skalar-MappingString (DateTime | Timestamp | Int)

Weist benutzerdefinierte GraphQL-Skalare (z. B. DateTime) nativen Prisma-Typen wie DateTime zu.

Standard: DateTime

Profi-Tipps & Best Practices

Wenn in GraphQL SDL 1

Wenn in GraphQL SDL 1:N- oder M:N-Beziehungen definiert sind, erzeugt der Konverter automatisch die erforderlichen Gegenbeziehungen und Fremdschlüsselfelder, um Validierungsfehler in Prisma zu vermeiden.

Felder mit Ausrufezeichen

Felder mit Ausrufezeichen (!) im GraphQL SDL werden als Pflichtfelder übernommen, während Felder ohne Ausrufezeichen in optionale Prisma-Felder mit Fragezeichen (?) umgewandelt werden.

Native Enum-Migrationen

GraphQL-Enum-Blöcke werden direkt in Prisma-Enums übersetzt, die bei der Migration nativ in PostgreSQL- oder MySQL-Enum-Datentypen abgebildet werden.

Häufige Fallstricke & Fehlerbehebung

Fehlende Gegenbeziehung oder Fremdschlüssel im Prisma-Modell

Prisma verlangt, dass Relationen auf beiden Seiten definiert sind. Falls im SDL nur eine Seite angegeben ist (z. B. author: User), synthetisiert der Konverter automatisch die Rückbeziehung (posts: Post[]) und das Fremdschlüsselfeld (authorId).

Unbekannte benutzerdefinierte GraphQL-Skalare (z. B. JSON, UUID)

Fügen Sie am Anfang des GraphQL SDL die Deklaration 'scalar DateTime' ein oder konfigurieren Sie das Skalar-Mapping, um einen Rückfall auf den String-Typ zu verhindern.

Häufig gestellte Fragen (FAQ)

Wie werden Many-to-Many-Beziehungen (n:m) übersetzt?▼

Wenn sich zwei Typen im GraphQL SDL gegenseitig als Listen referenzieren (z. B. tags: [Tag!]! und posts: [Post!]!), generiert der Konverter die implizite Prisma-M:N-Relation, sodass Zwischentabellen automatisch verwaltet werden.

Was geschieht mit Query-, Mutation- und Subscription-Typen?▼

Prisma Schema dient ausschließlich der Datenbankmodellierung. GraphQL-Wurzeltypen (Query, Mutation, Subscription) sowie Input-Typen werden automatisch gefiltert, sodass nur persistente Datenmodelle verbleiben.

Werden @map und @@map für abweichende Datenbanknamen unterstützt?▼

Ja, benutzerdefinierte Namenskonventionen und Direktiven können übernommen werden, um Spalten mit @map("spalte") und Tabellen mit @@map("tabelle") abzubilden.

Werden meine GraphQL-Schemadaten an einen Server übertragen?▼

Nein. Die gesamte AST-Analyse und Schematransformation findet vollständig clientseitig im Browser statt, ohne jeglichen Datentransfer an externe Server.

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →