Drizzle <> Cloudflare D1

This guide assumes familiarity with:

**공식 문서**에 따르면, D1은 Cloudflare의 첫 번째 쿼리 가능한 관계형 데이터베이스입니다.

Drizzle ORM은 Cloudflare D1 데이터베이스와 Cloudflare Workers 환경을 완벽하게 지원합니다. SQL 방언과 방언별 드라이버 및 문법을 지원하며, 가장 널리 사용되는 SQLite 스타일의 all, get, values, run 쿼리 메서드 문법을 제공합니다.

Cloudflare D1용 프로젝트 설정 방법은 **공식 문서**를 참조하세요.

Step 1 - 패키지 설치

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

Step 2 - 드라이버 초기화 및 쿼리 실행

D1 데이터베이스를 위해서는 wrangler.json 또는 wrangler.toml 파일이 필요하며, 다음과 같은 형태를 가집니다:

wrangler.json
wrangler.toml
{
    "name": "YOUR_PROJECT_NAME",
    "main": "src/index.ts",
    "compatibility_date": "2024-09-26",
    "compatibility_flags": [
        "nodejs_compat"
    ],
    "d1_databases": [
        {
            "binding": "BINDING_NAME",
            "database_name": "YOUR_DB_NAME",
            "database_id": "YOUR_DB_ID",
            "migrations_dir": "drizzle/migrations"
        }
    ]
}

첫 번째 D1 쿼리를 작성합니다:

import { drizzle } from 'drizzle-orm/d1';

export interface Env {
  <BINDING_NAME>: D1Database;
}

export default {
  async fetch(request: Request, env: Env) {
    const db = drizzle(env.<BINDING_NAME>);
    const result = await db.select().from(users).all()
    return Response.json(result);
  },
};

다음 단계