注意 — Prisma 的动态子命令加载系统目前需要同时安装 npm 和 Bun。这会影响某些 CLI 命令,比如 prisma init、prisma migrate 等。通过新的 prisma-client 生成器生成的代码可以完美兼容 Bun。
创建新项目
Prisma 可开箱即用支持 Bun。首先,创建一个目录并用 bun init 初始化。mkdir prisma-app
cd prisma-app
bun init
安装 Prisma 依赖
然后安装 Prisma CLI(prisma)、Prisma Client(@prisma/client)以及 LibSQL 适配器作为依赖。bun add -d prisma
bun add @prisma/client @prisma/adapter-libsql
用 SQLite 初始化 Prisma
我们将使用带有 bunx 的 Prisma CLI 初始化 schema 和迁移目录。为简化起见,我们使用内存 SQLite 数据库。bunx --bun prisma init --datasource-provider sqlite
这会创建一个基本 schema。我们需要修改它以使用适合 Bun 优化且无 Rust 的新客户端。打开 prisma/schema.prisma,修改生成器配置块,然后添加一个简单的 User 模型。
prisma/schema.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?
}
创建并运行数据库迁移
然后生成并运行初始迁移。这将生成一个位于 prisma/migrations 的 .sql 迁移文件,创建一个新的 SQLite 实例,并对该实例执行迁移。 bunx --bun prisma migrate dev --name init
环境变量从 .env 加载
Prisma schema 从 prisma/schema.prisma 加载
数据源 "db": SQLite 数据库 "dev.db" 位于 "file:./dev.db"
SQLite 数据库 dev.db 已创建,位置:file:./dev.db
正在应用迁移 `20251014141233_init`
以下迁移基于新的 schema 更改已创建并应用:
prisma/migrations/
└─ 20251014141233_init/
└─ migration.sql
你的数据库现已与 schema 同步。
✔ 在 18ms 内生成 Prisma Client (6.17.1) 到 ./generated
生成 Prisma Client
如输出所示,每当执行新迁移时,Prisma 会重新生成 Prisma 客户端。客户端为数据库的读写提供完全类型化的 API。你也可以通过 Prisma CLI 手动重新生成客户端。bunx --bun prisma generate
使用 LibSQL 初始化 Prisma Client
现在需要创建 Prisma 客户端实例。新建文件 prisma/db.ts,用 LibSQL 适配器初始化 PrismaClient。
prisma/db.tsimport { 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.tsimport { 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 运行脚本。每次运行都会创建一个新用户。创建了 john-0.12802932895402364@example.com
数据库中共有 1 名用户。
创建了 john-0.8671308799782803@example.com
数据库中共有 2 名用户。
创建了 john-0.4465968383115295@example.com
数据库中共有 3 名用户。
就这样!现在你已经用 Bun 配置好了 Prisma,接下来建议参考官方 Prisma 文档继续开发你的应用。