Skip to main content
注意 — Prisma 的动态子命令加载系统目前需要同时安装 npm 和 Bun。这会影响某些 CLI 命令,比如 prisma initprisma migrate 等。通过新的 prisma-client 生成器生成的代码可以完美兼容 Bun。
1

创建新项目

Prisma 可开箱即用支持 Bun。首先,创建一个目录并用 bun init 初始化。
terminal
mkdir prisma-app
cd prisma-app
bun init
2

安装 Prisma 依赖

然后安装 Prisma CLI(prisma)、Prisma Client(@prisma/client)以及 LibSQL 适配器作为依赖。
terminal
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsql
3

用 SQLite 初始化 Prisma

我们将使用带有 bunx 的 Prisma CLI 初始化 schema 和迁移目录。为简化起见,我们使用内存 SQLite 数据库。
terminal
bunx --bun prisma init --datasource-provider sqlite
这会创建一个基本 schema。我们需要修改它以使用适合 Bun 优化且无 Rust 的新客户端。打开 prisma/schema.prisma,修改生成器配置块,然后添加一个简单的 User 模型。
https://mintcdn.com/ikxin/RzFFGbzo0-4huILA/icons/ecosystem/prisma.svg?fit=max&auto=format&n=RzFFGbzo0-4huILA&q=85&s=2651fe8f12e3c6945985ae725c0e0cbcprisma/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?
  } 
4

创建并运行数据库迁移

然后生成并运行初始迁移。这将生成一个位于 prisma/migrations.sql 迁移文件,创建一个新的 SQLite 实例,并对该实例执行迁移。
terminal
 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
5

生成 Prisma Client

如输出所示,每当执行新迁移时,Prisma 会重新生成 Prisma 客户端。客户端为数据库的读写提供完全类型化的 API。你也可以通过 Prisma CLI 手动重新生成客户端。
terminal
bunx --bun prisma generate
6

使用 LibSQL 初始化 Prisma Client

现在需要创建 Prisma 客户端实例。新建文件 prisma/db.ts,用 LibSQL 适配器初始化 PrismaClient。
https://mintcdn.com/ikxin/RzFFGbzo0-4huILA/icons/typescript.svg?fit=max&auto=format&n=RzFFGbzo0-4huILA&q=85&s=a3dffd2241f05776d3bd25171d0c5a79prisma/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 });
7

创建测试脚本

写一个简单脚本,用于创建新用户,然后统计数据库中用户数量。
https://mintcdn.com/ikxin/RzFFGbzo0-4huILA/icons/typescript.svg?fit=max&auto=format&n=RzFFGbzo0-4huILA&q=85&s=a3dffd2241f05776d3bd25171d0c5a79index.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} 名用户。`);
8

运行并测试应用

bun run 运行脚本。每次运行都会创建一个新用户。
terminal
bun run index.ts
创建了 [email protected]
数据库中共有 1 名用户。
terminal
bun run index.ts
创建了 [email protected]
数据库中共有 2 名用户。
terminal
bun run index.ts
创建了 [email protected]
数据库中共有 3 名用户。

就这样!现在你已经用 Bun 配置好了 Prisma,接下来建议参考官方 Prisma 文档继续开发你的应用。