Was dieses Werkzeug tut
Aus einer JSON-Probe wird ein Prisma-Modell.
{ "id": 1, "name": "Ada", "tags": ["admin"], "score": 9.5 }
model Root {
id Int @id
name String
tags String[]
score Float
}
Das Modell allein ist kein schema.prisma: eine funktionierende Datei hat auch einen datasource- und einen generator-Block. Sie beschreiben Ihre Datenbank und Ihren Client, von denen eine Nutzlast nichts sagt.
Jedes Modell bekommt eine Kennung
Prisma lehnt ein Modell ohne @id (oder @@id) ab: prisma validate hält dort an. Also:
- ein
idvom TypIntoderStringwird die Kennung; - gar kein
id, und eines wird ergänzt:id Int @id @default(autoincrement()); - ein
idanderen Typs — Fließkommazahl, Wahrheitswert, verschachteltes Objekt — wird umbenannt und behält seinen ursprünglichen Schlüssel:
model Root {
id Int @id @default(autoincrement())
id2 Float @map("id")
name String
}
Der letzte Fall ergab bisher ein Modell ganz ohne Kennung: gültig aussehendes Prisma, das die Kommandozeile ablehnt. Beim Schreiben dieser Seite gefunden und behoben.
Nichts, was nach Relation aussieht, wird erfunden
Ein verschachteltes Objekt wird eine Json-Spalte. Es hätte eine Relation auf eine andere Tabelle sein können, und Raten hieße, aus einem Dokument ein Modell, einen Fremdschlüssel und eine Richtung zu erfinden. Ebenso bei einem Array von Objekten und bei einem gemischten Array.
Eine gleichartige Liste von Skalaren bekommt sehr wohl eine native Liste — String[], Int[] —, die es in PostgreSQL, CockroachDB und MongoDB gibt. Unter MySQL oder SQLite ändern Sie sie zu Json: die Ausgabe hat keine datasource und kann daher nicht wissen, welche Sie benutzen.
Namen, Nullbarkeit und was eine Probe nicht sagt
Feldnamen werden camelCase, und @map bewahrt den ursprünglichen Schlüssel, sobald beide sich unterscheiden: content-type wird contentType @map("content-type"), und Ihr Spaltenname bleibt. Zwei Schlüssel, die denselben camelCase ergeben, bekommen ein Suffix, statt verschmolzen zu werden.
Nur null erzeugt eine optionale Spalte, Json?. Alles andere ist Pflicht, weil die Probe einen Wert hatte — und eine Probe ist der falsche Ort, um zu erfahren, dass eine Spalte nullbar ist. Das ? ist ein Zeichen, und es gehört Ihnen.
Datenschutz ab Werk
Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.