运行时包管理器打包器测试运行器代码检查格式化指南参考博客反馈

在 Bun 中使用 Prisma

  1. 创建新项目

    创建一个目录,并使用 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

    使用 Prisma CLI 和 bunx 初始化 schema 和迁移目录。本指南使用本地 SQLite 数据库文件。prisma init 会将其连接字符串 DATABASE_URL="file:./dev.db" 写入 .env。

    terminal
    bunx --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 ++]
    
  4. 创建并运行数据库迁移

    生成并运行初始迁移。该命令会将 .sql 迁移文件写入 prisma/migrations,创建新的 SQLite 数据库,并对其运行迁移。Bun 使用 --bun 运行 CLI 时不会自动加载 .env。prisma init 生成的 prisma.config.ts 会从环境中读取 DATABASE_URL,因此请显式传入 --env-file=.env。

    terminal
     bun run --bun --env-file=.env prisma migrate dev --name init
    
    Text
    Loaded 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.
    
  5. 生成 Prisma Client

    prisma migrate dev 不会生成 Prisma client,因此请使用 Prisma CLI 生成它。该客户端提供用于读取和写入数据库的完全类型化 API。

    terminal
    bun run --bun --env-file=.env prisma generate
    
  6. 使用 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 });
    
  7. 创建测试脚本

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

    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} 名用户。`);
    
  8. 运行并测试应用

    使用 bun run 运行脚本。每次运行都会创建一个新用户。

    terminal
    bun run index.ts
    
    Text
    There are 1 users in the database.
    
    terminal
    bun run index.ts
    
    Text
    There are 2 users in the database.
    
    terminal
    bun run index.ts
    
    Text
    There are 3 users in the database.
    

现在已在 Bun 中完成 Prisma 的设置。在构建应用的过程中,请参阅 Prisma 文档。