EasyStarter logoEasyStarter

数据库

Web 客户端如何消费由 Drizzle 与 D1 支撑的数据

数据库

项目基于 Drizzle ORM + Cloudflare D1 构建数据库层。

创建 D1 数据库

参考官方文档:D1 Getting started · Wrangler commands

方式一:通过 Cloudflare Dashboard

  1. 登录 Cloudflare Dashboard
  2. 进入 Workers & Pages → D1
  3. 点击 Create database
  4. 输入数据库名,例如 easysaas-db
  5. 按需选择地域
  6. 点击 Create

创建完成后,在数据库详情页复制 database_id

方式二:通过 Wrangler CLI

pnpm wrangler d1 create your-d1-database-name

命令执行成功后会输出 D1 绑定配置,其中包含 database_id

配置 D1 数据库 ID

拿到 database_id 后,需要填入以下两个位置。

环境变量文件:

CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_API_TOKEN=
CLOUDFLARE_D1_DATABASE_ID=

CLOUDFLARE_ACCOUNT_IDCLOUDFLARE_API_TOKEN 的获取方式见 Cloudflare 集成

database_id 填到:

apps/server/.dev.vars
CLOUDFLARE_D1_DATABASE_ID=your-d1-database-id

和:

apps/server/.env.production
CLOUDFLARE_D1_DATABASE_ID=your-d1-database-id

Wrangler 配置:

"d1_databases": [
	{
		"binding": "DB",
		"database_name": "your-d1-database-name",
		"database_id": "your-d1-database-id"
	}
]

也就是说,apps/server/wrangler.jsonc 里的 database_id 也要填成同一个值。

执行本地数据库开发命令

本地数据库开发只需要按这个顺序执行:

pnpm db:generate
pnpm db:migrate:local
pnpm db:studio:local

pnpm db:generate

根据 apps/server/src/db/schema 生成迁移文件。

pnpm db:migrate:local

把刚生成的迁移应用到本地 D1 数据库。这个命令会自动处理本地 D1 初始化。

pnpm db:studio:local

打开本地 D1 的可视化界面,检查表结构和数据是否正确。

Web 端注意点

  • 浏览器客户端不应该直接持有数据库凭据
  • 通过类型安全的 API 配合查询缓存拿数据

On this page