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 generateμŠ€ν‚€λ§ˆ μ„ μ–Έ μ‹œμ μ΄λ‚˜ 후속 λ³€κ²½ μ‹œ Drizzle μŠ€ν‚€λ§ˆλ₯Ό 기반으둜 SQL λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기.
drizzle-kit migrateμƒμ„±λœ SQL λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ νŒŒμΌμ„ λ°μ΄ν„°λ² μ΄μŠ€μ— μ μš©ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기.
drizzle-kit pullλ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό κ°€μ Έμ˜€κ³ (introspect), Drizzle μŠ€ν‚€λ§ˆλ‘œ λ³€ν™˜ν•˜μ—¬ μ½”λ“œλ² μ΄μŠ€μ— μ €μž₯ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기
drizzle-kit pushμŠ€ν‚€λ§ˆ μ„ μ–Έ μ‹œμ μ΄λ‚˜ 후속 μŠ€ν‚€λ§ˆ λ³€κ²½ μ‹œ Drizzle μŠ€ν‚€λ§ˆλ₯Ό λ°μ΄ν„°λ² μ΄μŠ€λ‘œ ν‘Έμ‹œν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기
drizzle-kit studioλ°μ΄ν„°λ² μ΄μŠ€μ— μ—°κ²°ν•˜κ³  Drizzle Studio용 ν”„λ‘μ‹œ μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜μ—¬ νŽΈλ¦¬ν•œ λ°μ΄ν„°λ² μ΄μŠ€ λΈŒλΌμš°μ§•μ„ μ œκ³΅ν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기
drizzle-kit checkμƒμ„±λœ λͺ¨λ“  λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μ‚΄νŽ΄λ³΄κ³  경쟁 쑰건(좩돌)을 ν™•μΈν•©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기
drizzle-kit up이전에 μƒμ„±λœ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ˜ μŠ€λƒ…μƒ·μ„ μ—…κ·Έλ ˆμ΄λ“œν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 보기

Drizzle Kit은 drizzle.config.ts μ„€μ • 파일 λ˜λŠ” CLI λ§€κ°œλ³€μˆ˜λ₯Ό 톡해 κ΅¬μ„±λ©λ‹ˆλ‹€.
Drizzle Kit이 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μƒμ„±ν•˜λŠ” 방법을 μ•Œ 수 μžˆλ„λ‘ μ΅œμ†Œν•œ SQL dialect 및 schema 경둜λ₯Ό μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ“¦ <project root>
 β”œ πŸ“‚ drizzle
 β”œ πŸ“‚ src
 β”œ πŸ“œ .env
 β”œ πŸ“œ drizzle.config.ts  <--- Drizzle config file
 β”œ πŸ“œ 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