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-free 클라이언트를 사용하도록 이를 업데이트해야 합니다. 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 client 를 재생성합니다. 클라이언트는 데이터베이스에서 읽고 쓰기 위한 완전 타입 지원 API 를 제공합니다. Prisma CLI 로 클라이언트를 수동으로 재생성할 수 있습니다.

sh
bunx --bun prisma generate

LibSQL 와 함께 Prisma Client 초기화하기

이제 Prisma client 인스턴스를 생성해야 합니다. prisma/db.ts 라는 새 파일을 만들어 LibSQL 어댑터와 함께 PrismaClient 를 초기화하세요.

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
Created john-0.12802932895402364@example.com
데이터베이스에 1 명의 사용자가 있습니다.
bash
bun run index.ts
txt
Created john-0.8671308799782803@example.com
데이터베이스에 2 명의 사용자가 있습니다.
bash
bun run index.ts
txt
Created john-0.4465968383115295@example.com
데이터베이스에 3 명의 사용자가 있습니다.

이것이 전부입니다! Bun 을 사용하여 Prisma 를 설정했으니 애플리케이션을 계속 개발하면서 공식 Prisma 문서 를 참조하는 것을 권장합니다.

Bun by www.bunjs.com.cn 편집