Drizzle <> Cloudflare D1

本指南假定您熟悉

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

Drizzle ORM 全面支持 Cloudflare D1 数据库和 Cloudflare Workers 环境。我们支持 SQL 方言和特定方言的驱动程序及语法,并借鉴了最流行的 SQLite 风格的 allgetvaluesrun 查询方法语法。

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

步骤 1 - 安装包

npm
yarn
pnpm
bun
npm i drizzle-orm
npm i -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);
  },
};

接下来是什么?