Drizzle <> Cloudflare D1

This guide assumes familiarity with:

根据 官方网站,D1 是 Cloudflare 的第一个可查询关系数据库。

Drizzle ORM 完全支持 Cloudflare D1 数据库和 Cloudflare Workers 环境。我们拥抱 SQL 方言、特定于方言的驱动程序和语法,并镜像了最流行的类 SQLite allgetvaluesrun 查询方法的语法。

要为你的 Cloudflare D1 设置项目,请参阅 官方文档。

步骤 1 - 安装软件包

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

步骤 2 - 初始化驱动程序并进行查询

你需要一个用于 D1 数据库的 wrangler.jsonwrangler.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);
  },
};

下一步是什么?