Skip to main content
注意 — 目前 Prisma 需要安装 Node.js 来运行某些生成代码。请确保在运行 bunx prisma 命令的环境中已安装 Node.js。
1

创建新项目

首先,创建一个目录并用 bun init 初始化它。
terminal
mkdir prisma-postgres-app
cd prisma-postgres-app
bun init
2

安装 Prisma 依赖

然后安装 Prisma CLI (prisma)、Prisma 客户端 (@prisma/client) 以及 accelerate 扩展作为依赖。
terminal
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerate
3

用 PostgreSQL 初始化 Prisma

我们将使用带 bunx 的 Prisma CLI 初始化 schema 和迁移目录。数据库使用 PostgreSQL。
terminal
bunx --bun prisma init --db
这会创建一个基础 schema。我们需要更新它以使用新的无需 Rust 的、为 Bun 优化的客户端。打开 prisma/schema.prisma,修改 generator 块,然后添加一个简单的 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 = "postgresql"
	url      = env("DATABASE_URL")
}

model User { 
	id    Int     @id @default(autoincrement()) 
	email String  @unique
	name  String?
} 
4

配置数据库连接

.env 文件中设置你的 Postgres 数据库 URL。
.env
DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"
5

创建并运行数据库迁移

然后生成并运行初始迁移。这会在 prisma/migrations 中生成 .sql 迁移文件,并对你的 Postgres 数据库执行迁移。
terminal
bunx --bun prisma migrate dev --name init
从 .env 加载环境变量
从 prisma/schema.prisma 加载 Prisma schema
数据源 "db":PostgreSQL 数据库 "mydb",schema "public" 于 "localhost:5432"

应用迁移 `20250114141233_init`

以下迁移已根据新 schema 变更创建并应用:

prisma/migrations/
  └─ 20250114141233_init/
    └─ migration.sql

数据库现已与 schema 同步。

✔ 在 18ms 内生成 Prisma Client (6.17.1) 到 ./generated
6

生成 Prisma 客户端

如输出所示,每次执行新迁移时 Prisma 都会重新生成 Prisma 客户端。客户端提供了完整类型化的数据库读写 API。你也可以使用 Prisma CLI 手动重新生成客户端。
terminal
bunx --bun prisma generate
7

用 Accelerate 初始化 Prisma 客户端

现在我们需要创建一个 Prisma 客户端实例。新建文件 prisma/db.ts,用 Postgres 适配器初始化 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 { withAccelerate } from '@prisma/extension-accelerate'

export const prisma = new PrismaClient().$extends(withAccelerate())
8

创建测试脚本

我们写一个简单脚本来创建新用户,然后统计数据库中用户数量。
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} 个用户。`);
9

运行并测试应用

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

就这样!现在你已经用 Bun 设置了 Prisma Postgres,建议继续开发时参考官方 Prisma Postgres 文档