NOTE
**注意** — 目前 Prisma 需要安装 Node.js 才能运行某些生成代码。确保在你运行 `bunx prisma` 命令的环境中 安装了 Node.js。创建新项目
首先,创建一个目录并使用 bun init 初始化它。
bash
mkdir prisma-postgres-app
cd prisma-postgres-app
bun init安装 Prisma 依赖
然后安装 Prisma CLI(prisma)、Prisma Client(@prisma/client)和 accelerate 扩展作为依赖。
bash
bun add -d prisma
bun add @prisma/client @prisma/extension-accelerate使用 PostgreSQL 初始化 Prisma
我们将使用 bunx 运行 Prisma CLI 来初始化我们的模式和迁移目录。我们将使用 PostgreSQL 作为数据库。
bash
bunx --bun prisma init --db这将创建一个基本模式。我们需要更新它以使用带有 Bun 优化的新无 Rust 客户端。打开 prisma/schema.prisma 并修改 generator 块,然后添加一个简单的 User 模型。
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?
} 配置数据库连接
在 .env 文件中设置你的 Postgres 数据库 URL。
ini
DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"创建并运行数据库迁移
然后生成并运行初始迁移。
这将在 prisma/migrations 中生成一个 .sql 迁移文件,并针对你的 Postgres 数据库执行迁移。
bash
bunx --bun prisma migrate dev --name inittxt
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": PostgreSQL database "mydb", schema "public" at "localhost:5432"
Applying migration `20250114141233_init`
The following migration(s) have been created and applied from new schema changes:
prisma/migrations/
└─ 20250114141233_init/
└─ migration.sql
Your database is now in sync with your schema.
✔ Generated Prisma Client (6.17.1) to ./generated in 18ms生成 Prisma Client
如输出所示,每当我们执行新迁移时,Prisma 会重新生成我们的 Prisma client。该客户端提供了一个完全类型化的 API 用于从数据库读写数据。你可以使用 Prisma CLI 手动重新生成客户端。
sh
bunx --bun prisma generate使用 Accelerate 初始化 Prisma Client
现在我们需要创建一个 Prisma 客户端实例。创建一个新文件 prisma/db.ts 来使用 Postgres 适配器初始化 PrismaClient。
ts
import { PrismaClient } from "./generated/client";
import { withAccelerate } from '@prisma/extension-accelerate'
export const prisma = new PrismaClient().$extends(withAccelerate())创建测试脚本
让我们编写一个简单的脚本来创建一个新用户,然后统计数据库中的用户数量。
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(`There are ${count} users in the database.`);运行和测试应用
让我们使用 bun run 运行此脚本。每次运行它时,都会创建一个新用户。
bash
bun run index.tstxt
There are 1 users in the database.bash
bun run index.tstxt
There are 2 users in the database.bash
bun run index.tstxt
There are 3 users in the database.就是这样!现在你已经使用 Bun 设置了 Prisma Postgres,我们建议在继续开发应用时参考 官方 Prisma Postgres 文档。