NOTE
**Hinweis** — Prismas dynamisches Subcommand-Ladesystem erfordert derzeit, dass npm neben Bun installiert ist. Dies betrifft bestimmte CLI-Befehle wie `prisma init`, `prisma migrate` usw. Der generierte Code funktioniert mit dem neuen `prisma-client`-Generator perfekt mit Bun.Ein neues Projekt erstellen
Prisma funktioniert out of the box mit Bun. Erstellen Sie zuerst ein Verzeichnis und initialisieren Sie es mit bun init.
mkdir prisma-app
cd prisma-app
bun initPrisma-Abhängigkeiten installieren
Installieren Sie dann die Prisma-CLI (prisma), Prisma Client (@prisma/client) und den LibSQL-Adapter als Abhängigkeiten.
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsqlPrisma mit SQLite initialisieren
Wir verwenden die Prisma-CLI mit bunx, um unser Schema und Migrationsverzeichnis zu initialisieren. Der Einfachheit halber verwenden wir eine SQLite-In-Memory-Datenbank.
bunx --bun prisma init --datasource-provider sqliteDies erstellt ein grundlegendes Schema. Wir müssen es aktualisieren, um den neuen Rust-freien Client mit Bun-Optimierung zu verwenden. Öffnen Sie prisma/schema.prisma und ändern Sie den Generator-Block, fügen Sie dann ein einfaches User-Modell hinzu.
generator client {
provider = "prisma-client"
output = "./generated"
engineType = "client"
runtime = "bun"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
} Datenbankmigration erstellen und ausführen
Erstellen und führen Sie dann die initiale Migration aus.
Dies erstellt eine .sql-Migrationsdatei in prisma/migrations, erstellt eine neue SQLite-Instanz und führt die Migration gegen die neue Instanz aus.
bunx --bun prisma migrate dev --name initEnvironment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database "dev.db" at "file:./dev.db"
SQLite database dev.db created at file:./dev.db
Applying migration `20251014141233_init`
The following migration(s) have been created and applied from new schema changes:
prisma/migrations/
└─ 20251014141233_init/
└─ migration.sql
Your database is now in sync with your schema.
✔ Generated Prisma Client (6.17.1) to ./generated in 18msPrisma Client generieren
Wie in der Ausgabe angegeben, generiert Prisma unseren Prisma Client neu, wann immer wir eine neue Migration ausführen. Der Client bietet eine vollständig typisierte API zum Lesen und Schreiben aus unserer Datenbank. Sie können den Client manuell mit der Prisma-CLI neu generieren.
bunx --bun prisma generatePrisma Client mit LibSQL initialisieren
Jetzt müssen wir eine Prisma Client-Instanz erstellen. Erstellen Sie eine neue Datei prisma/db.ts, um den PrismaClient mit dem LibSQL-Adapter zu initialisieren.
import { PrismaClient } from "./generated/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";
const adapter = new PrismaLibSQL({ url: process.env.DATABASE_URL || "" });
export const prisma = new PrismaClient({ adapter });Ein Testskript erstellen
Schreiben wir ein einfaches Skript, um einen neuen Benutzer zu erstellen und dann die Anzahl der Benutzer in der Datenbank zu zählen.
import { prisma } from "./prisma/db";
// create a new user
await prisma.user.create({
data: {
name: "John Dough",
email: `john-${Math.random()}@example.com`,
},
});
// count the number of users
const count = await prisma.user.count();
console.log(`Es gibt ${count} Benutzer in der Datenbank.`);Die Anwendung ausführen und testen
Lassen Sie uns dieses Skript mit bun run ausführen. Jedes Mal, wenn wir es ausführen, wird ein neuer Benutzer erstellt.
bun run index.tsCreated john-0.12802932895402364@example.com
Es gibt 1 Benutzer in der Datenbank.bun run index.tsCreated john-0.8671308799782803@example.com
Es gibt 2 Benutzer in der Datenbank.bun run index.tsCreated john-0.4465968383115295@example.com
Es gibt 3 Benutzer in der Datenbank.Das war's! Jetzt, wo Sie Prisma mit Bun eingerichtet haben, empfehlen wir, die offiziellen Prisma-Dokumentationen zu konsultieren, während Sie Ihre Anwendung weiterentwickeln.