Skip to content

NOTE

**注意** — Prisma の動的サブコマンドローディングシステムは現在、Bun と一緒に npm のインストールを必要とします。これは `prisma init`、`prisma migrate` などの特定の CLI コマンドに影響します。生成されたコードは、新しい `prisma-client` ジェネレーターを使用して Bun で完全に動作します。

新しいプロジェクトを作成

Prisma は Bun ですぐに使用できます。まず、ディレクトリを作成し、bun init で初期化します。

bash
mkdir prisma-app
cd prisma-app
bun init

Prisma 依存関係をインストール

次に Prisma CLI(prisma)、Prisma Client(@prisma/client)、および LibSQL アダプターを依存関係としてインストールします。

bash
bun add -d prisma
bun add @prisma/client @prisma/adapter-libsql

SQLite で Prisma を初期化

bunx で Prisma CLI を使用してスキーマとマイグレーションディレクトリを初期化します。簡単のため、インメモリの SQLite データベースを使用します。

bash
bunx --bun prisma init --datasource-provider sqlite

これにより、基本的なスキーマが作成されます。Bun 最適化で新しい Rust フリーのクライアントを使用するように更新する必要があります。prisma/schema.prisma を開き、ジェネレーターブロックを変更し、シンプルな User モデルを追加します。

prisma
generator client {
  provider = "prisma-client"
  output = "./generated"
  engineType = "client"
  runtime = "bun"
}

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

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

データベースマイグレーションを作成して実行

初期マイグレーションを生成して実行します。

これにより、prisma/migrations.sql マイグレーションファイルが生成され、新しい SQLite インスタンスが作成され、マイグレーションが新しいインスタンスに対して実行されます。

bash
bunx --bun prisma migrate dev --name init
txt
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 `20251014141233_init`

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

prisma/migrations/
  └─ 20251014141233_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 クライアント を再生成します。クライアントは、データベースからの読み取りと書き込みのための完全に型付けされた API を提供します。Prisma CLI を使用してクライアントを手動で再生成できます。

sh
bunx --bun prisma generate

LibSQL で Prisma Client を初期化

Prisma クライアントインスタンスを作成する必要があります。LibSQL アダプターで PrismaClient を初期化するために、新しいファイル prisma/db.ts を作成します。

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 });

テストスクリプトを作成

新しいユーザーを作成し、データベース内のユーザー数をカウントするシンプルなスクリプトを作成しましょう。

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} 人のユーザーがいます。`);

アプリケーションを実行してテスト

bun run でこのスクリプトを実行しましょう。実行するたびに新しいユーザーが作成されます。

bash
bun run index.ts
txt
john-0.12802932895402364@example.com を作成
データベースには 1 人のユーザーがいます。
bash
bun run index.ts
txt
john-0.8671308799782803@example.com を作成
データベースには 2 人のユーザーがいます。
bash
bun run index.ts
txt
john-0.4465968383115295@example.com を作成
データベースには 3 人のユーザーがいます。

これで完了です!Bun を使用して Prisma を設定したので、アプリケーションの開発を続ける際に 公式 Prisma ドキュメント を参照することをお勧めします。

Bun by www.bunjs.com.cn 編集