Drizzle Kit을 이용한 마이그레이션

This guide assumes familiarity with:

Drizzle Kit은 Drizzle과 함께 SQL 데이터베이스 마이그레이션을 관리하는 CLI 도구입니다.

npm
yarn
pnpm
bun
npm i -D drizzle-kit
IMPORTANT

먼저 Drizzle 시작하기마이그레이션 기초를 읽고 비즈니스 요구사항에 가장 적합한 SQL 마이그레이션 플로우를 선택하세요.

Drizzle Kit은 스키마를 기반으로 SQL 마이그레이션 파일을 생성하고 실행하며, 스키마를 데이터베이스에 직접 푸시하고, 데이터베이스에서 스키마를 풀하며, Drizzle Studio를 실행하는 등 여러 유틸리티 명령을 제공합니다.

npm
yarn
pnpm
bun
npx drizzle-kit generate
npx drizzle-kit migrate
npx drizzle-kit push
npx drizzle-kit pull
npx drizzle-kit check
npx drizzle-kit up
npx drizzle-kit studio
drizzle-kit generateDrizzle 스키마를 기반으로 선언 시점 또는 후속 변경 시점에 SQL 마이그레이션 파일을 생성합니다, 여기서 확인.
drizzle-kit migrate생성된 SQL 마이그레이션 파일을 데이터베이스에 적용합니다, 여기서 확인.
drizzle-kit pull데이터베이스 스키마를 풀(인트로스펙션)하여 Drizzle 스키마로 변환하고 코드베이스에 저장합니다, 여기서 확인
drizzle-kit pushDrizzle 스키마를 선언 시점 또는 후속 스키마 변경 시점에 데이터베이스로 푸시합니다, 여기서 확인
drizzle-kit studio데이터베이스에 연결하고 Drizzle Studio용 프록시 서버를 실행하여 편리한 데이터베이스 탐색을 제공합니다, 여기서 확인
drizzle-kit check생성된 모든 마이그레이션을 검토하여 마이그레이션 간 경쟁 조건(충돌)을 확인합니다, 여기서 확인
drizzle-kit up이전에 생성된 마이그레이션의 스냅샷을 업그레이드하는 데 사용됩니다, 여기서 확인

Drizzle Kit은 drizzle.config.ts 설정 파일이나 CLI 파라미터를 통해 구성됩니다.
Drizzle Kit이 마이그레이션을 생성하려면 최소한 SQL dialectschema 경로를 제공해야 합니다.

📦 <project root>
 ├ 📂 drizzle
 ├ 📂 src
 ├ 📜 .env
 ├ 📜 drizzle.config.ts  <--- Drizzle 설정 파일
 ├ 📜 package.json
 └ 📜 tsconfig.json
simple config
extended config
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  dialect: "postgresql",
  schema: "./src/schema.ts",
});

CLI 파라미터를 통해 Drizzle Kit 설정 파일 경로를 지정할 수 있습니다. 이는 여러 데이터베이스 단계가 있거나, 여러 데이터베이스를 사용하거나, 동일한 프로젝트에서 다른 데이터베이스를 사용할 때 매우 유용합니다:

npm
yarn
pnpm
bun
npx drizzle-kit push --config=drizzle-dev.drizzle.config
npx drizzle-kit push --config=drizzle-prod.drizzle.config
📦 <project root>
 ├ 📂 drizzle
 ├ 📂 src
 ├ 📜 .env
 ├ 📜 drizzle-dev.config.ts
 ├ 📜 drizzle-prod.config.ts
 ├ 📜 package.json
 └ 📜 tsconfig.json