数据库
了解如何为 TanStarter 项目配置 Cloudflare D1 数据库
本文档涵盖了数据库的创建、初始化和使用 Drizzle ORM 连接 Cloudflare D1 数据库。
设置
创建和初始化本地数据库
本地 D1 数据库可以在执行数据库初始化命令时自动创建,运行下面命令初始化本地数据库:
pnpm db:migrate:local对于本地开发,您可以使用下面的命令打开 Drizzle Studio 进行本地数据库管理:
pnpm db:studio:local创建远程 D1 数据库
远程 D1 数据库需要手动创建,创建之前需要先配置 Cloudflare API Token。
(1) 配置 Cloudflare API Token
请先完成 Cloudflare API Token 配置,确保 Token 至少包含 Account > D1 > Edit 权限。
(2) 创建远程数据库
可以通过 Cloudflare 仪表盘或 Wrangler CLI 创建远程 D1 数据库:
- 创建新的 D1 数据库:
pnpm wrangler d1 create your-database-name- 命令执行成功之后的提问时选择
no,并从命令输出中复制database_id
- 登录 Cloudflare 仪表盘
- 导航到 Storage & Databases > D1 SQL Databases
- 点击 Create Database
- 输入数据库名称,点击 Create
- 创建完成后,从数据库详情页复制 Database ID
创建完成后,更新 wrangler.jsonc 文件中的 database_id 和 database_name:
"d1_databases": [
{
"binding": "DB",
"database_name": "your-database-name", // 更改为你的数据库名称
"database_id": "your-database-id", // 更改为你的数据库 ID
"migrations_dir": "./src/db/migrations"
}
],同时将数据库 ID 添加到环境变量文件中:
CLOUDFLARE_DATABASE_ID=your-database-id如果您正在设置环境,现在可以回到环境配置文档并继续。本文档的其余部分可以稍后阅读。
环境配置
设置环境变量
数据库结构
数据库 schema 定义在 src/db/ 目录中:
src/db/auth.schema.ts- Better Auth schema(自动生成)src/db/app.schema.ts- 应用程序 schema
数据库包含以下表:
- Users - 用户账户和资料
- Sessions - 用户认证会话
- Accounts - OAuth 账户关联
- Verification - 邮箱验证令牌
- API Keys - API 密钥管理
- Payments - 支付记录和订阅跟踪
- User Files - 用户上传文件的元数据
数据库命令
TanStarter 提供了以下数据库管理命令:
| 命令 | 描述 |
|---|---|
pnpm db:generate | 生成 Drizzle 迁移文件 |
pnpm db:push | 将 schema 变更推送到数据库 |
pnpm db:studio:local | 打开 Drizzle Studio(本地数据库) |
pnpm db:studio:remote | 打开 Drizzle Studio(远程数据库) |
pnpm db:migrate:local | 应用迁移(本地数据库) |
pnpm db:migrate:remote | 应用迁移(远程数据库) |
参考资料
下一步
现在您了解了如何在 TanStarter 中设置数据库,您可能想要探索这些相关功能:
TanStarter 文档