Bun

指南生态系统

使用 Prisma 与 Bun

注意 — 目前 Prisma 需要安装 Node.js 才能运行某些生成代码。确保在运行 bunx prisma 命令的环境中安装了 Node.js。

Prisma 开箱即用,与 Bun 兼容。首先,创建一个目录并使用 bun init 初始化它。

mkdir prisma-app
cd prisma-app
bun init

然后,将 Prisma CLI (prisma) 和 Prisma Client (@prisma/client) 作为依赖项进行安装。

bun add -d prisma
bun add @prisma/client

我们将使用 bunx 与 Prisma CLI 一起初始化我们的架构和迁移目录。为简单起见,我们将使用内存中 SQLite 数据库。

bunx prisma init --datasource-provider sqlite

打开 prisma/schema.prisma 并添加一个简单的 User 模型。

prisma/schema.prisma
generator client {
  provider = "prisma-client-js"
}

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 prisma migrate dev --name init
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database "dev.db" at "file:./dev.db"

SQLite database dev.db created at file:./dev.db

Applying migration `20230928182242_init`

The following migration(s) have been created and applied from new schema changes:

migrations/
  └─ 20230928182242_init/
    └─ migration.sql

Your database is now in sync with your schema.

✔ Generated Prisma Client (v5.3.1) to ./node_modules/@prisma/client in 41ms

如输出中所示,每当我们执行新的迁移时,Prisma 都会重新生成我们的Prisma 客户端。该客户端提供了一个完全类型的 API,用于从我们的数据库中读取和写入。你可以使用 Prisma CLI 手动重新生成客户端。

bunx prisma generate

我们可以从 @prisma/client 导入生成的客户端。

src/index.ts
import {PrismaClient} from "@prisma/client";

让我们编写一个简单的脚本来创建一个新用户,然后统计数据库中的用户数量。

index.ts
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();

// create a new user
await prisma.user.create({
  data: {
    name: "John Dough",
    email: `john-${Math.random()}@example.com`,
  },
});

// count the number of users
const count = await prisma.user.count();
console.log(`There are ${count} users in the database.`);

让我们使用 bun run 运行此脚本。每次运行它时,都会创建一个新用户。

bun run index.ts
Created [email protected]
There are 1 users in the database.
bun run index.ts
Created [email protected]
There are 2 users in the database.
bun run index.ts
Created [email protected]
There are 3 users in the database.

就是这样!既然你已经使用 Bun 设置了 Prisma,我们建议你在继续开发应用程序时参考Prisma 官方文档