在 Bun 中使用 Prisma
- 建立新專案
建立一個目錄,並使用
bun init對其進行初始化。terminalmkdir prisma-app cd prisma-app bun init - 安裝 Prisma 相依
然後安裝 Prisma CLI(
prisma)、Prisma Client(@prisma/client)以及 LibSQL 介面卡作為相依。terminalbun add -d prisma bun add @prisma/client @prisma/adapter-libsql - 使用 SQLite 初始化 Prisma
使用 Prisma CLI 和
bunx初始化 schema 和遷移目錄。本指南使用本地 SQLite 資料庫檔案。prisma init會將其連線字串DATABASE_URL="file:./dev.db"寫入.env。terminalbunx --bun prisma init --datasource-provider sqlite這會建立一個基本的 schema。開啟
prisma/schema.prisma,更新生成器程式碼塊,以便使用基於bun執行環境的無 Rust 客戶端,並新增一個User模型。prisma/schema.prisma
generator client { provider = "prisma-client" output = "../generated/prisma" // [!code --] output = "./generated" // [!code ++] engineType = "client" // [!code ++] runtime = "bun" // [!code ++] } datasource db { provider = "sqlite" } model User { // [!code ++] id Int @id @default(autoincrement()) // [!code ++] email String @unique // [!code ++] name String? // [!code ++] } // [!code ++] - 建立並執行資料庫遷移
生成並執行初始遷移。該命令會將
.sql遷移檔案寫入prisma/migrations,建立新的 SQLite 資料庫,並對其執行遷移。Bun 使用--bun執行 CLI 時不會自動載入.env。prisma init生成的prisma.config.ts會從環境中讀取DATABASE_URL,因此請顯式傳入--env-file=.env。terminalbun run --bun --env-file=.env prisma migrate dev --name initTextLoaded Prisma config from prisma.config.ts. Prisma schema loaded from prisma/schema.prisma. Datasource "db": SQLite database "dev.db" at "file:./dev.db" SQLite 資料庫 dev.db 已建立,位置:file:./dev.db 正在應用遷移 `20251014141233_init` 以下遷移基於新的 schema 更改已建立並應用: prisma/migrations/ └─ 20251014141233_init/ └─ migration.sql Your database is now in sync with your schema. - 生成 Prisma Client
prisma migrate dev不會生成 Prisma client,因此請使用 Prisma CLI 生成它。該客戶端提供用於讀取和寫入資料庫的完全型別化 API。terminalbun run --bun --env-file=.env prisma generate - 使用 LibSQL 初始化 Prisma Client
建立一個新的檔案
prisma/db.ts,使用 LibSQL 介面卡初始化 PrismaClient。prisma/db.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 }); - 建立測試指令碼
編寫一個指令碼來建立新使用者,然後統計資料庫中的使用者數量。
index.ts
import { prisma } from "./prisma/db"; // 建立一個新使用者 await prisma.user.create({ data: { name: "John Dough", email: `john-${Math.random()}@example.com`, }, }); // 統計使用者數量 const count = await prisma.user.count(); console.log(`資料庫中共有 ${count} 名使用者。`); - 執行並測試應用
使用
bun run執行指令碼。每次執行都會建立一個新使用者。terminalbun run index.tsTextThere are 1 users in the database.terminalbun run index.tsTextThere are 2 users in the database.terminalbun run index.tsTextThere are 3 users in the database.
現在已在 Bun 中完成 Prisma 的設定。在建置應用的過程中,請參閱 Prisma 文件。