Skip to content

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.

bash
mkdir prisma-app
cd prisma-app
bun init

Prisma-Abhängigkeiten installieren

Installieren Sie dann die Prisma-CLI (prisma), Prisma Client (@prisma/client) und den LibSQL-Adapter als Abhängigkeiten.

bash
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsql

Prisma 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.

bash
bunx --bun prisma init --datasource-provider sqlite

Dies 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.

prisma
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.

bash
bunx --bun prisma migrate dev --name init
txt
Environment 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 18ms

Prisma 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.

sh
bunx --bun prisma generate

Prisma 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.

ts
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.

ts
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.

bash
bun run index.ts
txt
Created john-0.12802932895402364@example.com
Es gibt 1 Benutzer in der Datenbank.
bash
bun run index.ts
txt
Created john-0.8671308799782803@example.com
Es gibt 2 Benutzer in der Datenbank.
bash
bun run index.ts
txt
Created 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.

Bun von www.bunjs.com.cn bearbeitet