Schnellstart • Website • Dokumente • Beispiele • Blog • Discord • Twitter
Prisma ORM ist ein ORM der nächsten Generation , das aus den folgenden Tools besteht:
Prisma Client : Automatisch generierter und typsicherer Abfrage-Builder für Node.js und TypeScript
Prisma Migrate : Deklaratives Datenmodellierungs- und Migrationssystem
Prisma Studio : GUI zum Anzeigen und Bearbeiten von Daten in Ihrer Datenbank
Prisma Client kann in jeder Node.js- oder TypeScript-Backend-Anwendung verwendet werden (einschließlich serverloser Anwendungen und Microservices). Dies kann eine REST-API, eine GraphQL-API, eine gRPC-API oder alles andere sein, das eine Datenbank benötigt.
Wenn Sie eine Datenbank zur Verwendung mit Prisma ORM benötigen, schauen Sie sich Prisma Postgres an.
Prisma ORM kann mit diesen Prisma-Produkten weiter erweitert werden:
Prisma Accelerate: Globaler Datenbank-Cache mit skalierbarem Verbindungspooling
Prisma Pulse: Echtzeit-Datenbankereignisse mit typsicheren Abonnements
Prisma Optimize: KI-gestützte Abfrageoptimierung und Leistungseinblicke
Prisma Studio: Ein visueller Editor für die Daten in Ihrer Datenbank
Der schnellste Einstieg in Prisma ist die Befolgung der Schnellstartanleitungen. Sie können zwischen zwei Datenbanken wählen:
Prisma Postgres
SQLite
Wenn Sie bereits über eine eigene Datenbank verfügen, können Sie diesen Anleitungen folgen:
Fügen Sie Prisma zu einem vorhandenen Projekt hinzu
Richten Sie mit Prisma ein neues Projekt von Grund auf ein
Dieser Abschnitt bietet einen allgemeinen Überblick über die Funktionsweise von Prisma ORM und seine wichtigsten technischen Komponenten. Eine ausführlichere Einführung finden Sie in der Prisma-Dokumentation.
Jedes Projekt, das ein Tool aus dem Prisma-Toolkit verwendet, beginnt mit einer Prisma-Schemadatei. Mit dem Prisma-Schema können Entwickler ihre Anwendungsmodelle in einer intuitiven Datenmodellierungssprache definieren. Es enthält auch die Verbindung zu einer Datenbank und definiert einen Generator :
// DatenquelleDatenquelle db { Anbieter = "postgresql" url = env("DATABASE_URL")}// Generatorgenerator Client { Anbieter = "prisma-client-js"}// DatenmodellModell Post { id Int @id @default(autoincrement( )) Titel String Inhalt String? veröffentlicht Boolean @default(false) Autor Benutzer? @relation(fields: [authorId], references: [id]) authorId Int?}model User { id Int @id @default(autoincrement()) email String @unique name String? Beiträge Beitrag[]}
In diesem Schema konfigurieren Sie drei Dinge:
Datenquelle : Gibt Ihre Datenbankverbindung an (über eine Umgebungsvariable)
Generator : Zeigt an, dass Sie einen Prisma-Client generieren möchten
Datenmodell : Definiert Ihre Anwendungsmodelle
Auf dieser Seite liegt der Fokus auf dem Datenmodell. Weitere Informationen zu Datenquellen und Generatoren finden Sie auf den jeweiligen Dokumentseiten.
Das Datenmodell ist eine Sammlung von Modellen. Ein Modell hat zwei Hauptfunktionen:
Stellen Sie eine Tabelle in der zugrunde liegenden Datenbank dar
Stellen Sie die Grundlage für die Abfragen in der Prisma-Client-API bereit
Es gibt zwei Hauptabläufe zum „Einbinden“ eines Datenmodells in Ihr Prisma-Schema:
Generieren Sie das Datenmodell durch Introspektion einer Datenbank
Manuelles Schreiben des Datenmodells und Zuordnen zur Datenbank mit Prisma Migrate
Sobald das Datenmodell definiert ist, können Sie einen Prisma-Client generieren, der CRUD und weitere Abfragen für die definierten Modelle bereitstellt. Wenn Sie TypeScript verwenden, erhalten Sie vollständige Typsicherheit für alle Abfragen (auch wenn Sie nur die Teilmengen der Felder eines Modells abrufen).
Der erste Schritt bei der Verwendung von Prisma Client ist die Installation seines npm-Pakets:
npm install @prisma/client
Beachten Sie, dass die Installation dieses Pakets den prisma generate
-Befehl aufruft, der Ihr Prisma-Schema liest und den Prisma-Client-Code generiert . Der Code befindet sich in node_modules/.prisma/client
, der von node_modules/@prisma/client/index.d.ts
exportiert wird.
Nachdem Sie Ihr Datenmodell geändert haben, müssen Sie Prisma Client manuell neu generieren, um sicherzustellen, dass der Code in node_modules/.prisma/client
aktualisiert wird:
npx prisma generate
Weitere Informationen zum „Generieren des Prisma-Clients“ finden Sie in der Dokumentation.
Sobald der Prisma-Client generiert ist, können Sie ihn in Ihren Code importieren und Abfragen an Ihre Datenbank senden. So sieht der Setup-Code aus.
Sie können Prisma Client wie folgt importieren und instanziieren:
import { PrismaClient } from '@prisma/client'const prisma = new PrismaClient()
oder
const { PrismaClient } = require('@prisma/client')const prisma = new PrismaClient()
Jetzt können Sie mit dem Senden von Abfragen über die generierte Prisma-Client-API beginnen. Hier sind einige Beispielabfragen. Beachten Sie, dass alle Prisma-Client-Abfragen einfache alte JavaScript-Objekte zurückgeben.
Erfahren Sie mehr über die verfügbaren Vorgänge in den Prisma Client-Dokumenten oder sehen Sie sich dieses Demovideo an (2 Minuten).
User
aus der Datenbank ab// Innerhalb von „async“ ausführen functionconst allUsers = waiting prisma.user.findMany()
posts
-Beziehung für jedes zurückgegebene User
ein// Innerhalb von „async“ ausführen functionconst allUsers = waiting prisma.user.findMany({ include: { posts: true },})
Post
, die "prisma"
enthalten.// In `async` ausführen functionconst filteredPosts = waiting prisma.post.findMany({ where: { OR: [{ title: { enthält: 'prisma' } }, { content: { enthält: 'prisma' } }], } ,})
User
und einen neuen Post
// Innerhalb von „async“ ausführen functionconst user = waiting prisma.user.create({ data: { name: 'Alice', email: '[email protected]', posts: { create: { title: 'Join us for Prisma Tag 2021' }, }, },})
Post
// Innerhalb der „async“-Funktion ausführenconst post = waiting prisma.post.update({ where: { id: 42 }, data: { veröffentlicht: true },})
Beachten Sie, dass bei Verwendung von TypeScript das Ergebnis dieser Abfrage statisch typisiert wird, sodass Sie nicht versehentlich auf eine nicht vorhandene Eigenschaft zugreifen können (und etwaige Tippfehler zur Kompilierungszeit abgefangen werden). Weitere Informationen zur Nutzung der vom Prisma-Client generierten Typen finden Sie auf der Seite „Erweiterte Verwendung generierter Typen“ in den Dokumenten.
Prisma verfügt über eine große und unterstützende Community begeisterter Anwendungsentwickler. Sie können uns auf Discord und hier auf GitHub beitreten.
Mit Prisma etwas Großartiges gebaut? ? Zeigen Sie es mit diesen Abzeichen, perfekt für Ihre Readme-Datei oder Website.
[![Made with Prisma](http://made-with.prisma.io/dark.svg)](https://prisma.io)
[![Made with Prisma](http://made-with.prisma.io/indigo.svg)](https://prisma.io)
Wenn Sie ein Sicherheitsproblem melden möchten, kontaktieren Sie uns bitte unter [email protected].
Im prisma
Repository auf GitHub können Sie Fragen stellen und Diskussionen zu Prisma-bezogenen Themen anstoßen.
? Eine Frage stellen
Wenn Sie eine Fehlermeldung sehen oder auf ein Problem stoßen, erstellen Sie bitte unbedingt einen Fehlerbericht! Best Practices zum Erstellen von Fehlerberichten (z. B. Einbinden zusätzlicher Debugging-Ausgaben) finden Sie in den Dokumenten.
? Fehlerbericht erstellen
Wenn Prisma derzeit über eine bestimmte Funktion nicht verfügt, schauen Sie sich unbedingt die Roadmap an, um zu sehen, ob diese bereits für die Zukunft geplant ist.
Wenn die Funktion auf der Roadmap mit einem GitHub-Problem verknüpft ist, hinterlassen Sie bitte unbedingt ein ? Reaktion auf das Problem und idealerweise einen Kommentar mit Ihren Gedanken zu der Funktion!
? Funktionsanfrage senden
Weitere Informationen finden Sie in unseren Beitragsrichtlinien und unserem Verhaltenskodex für Mitwirkende.
Status der Prisma-Tests:
Status der Ökosystemtests: