執行環境套件管理器打包器測試執行器程式碼檢查格式化指南參考部落格意見回饋

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