在 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 文档。