LogoShipSaaS

数据库

了解如何为 ShipSaaS 项目配置 Cloudflare D1 数据库

本文档涵盖了数据库的创建、初始化和使用 Drizzle ORM 连接 Cloudflare D1 数据库。

设置

创建和初始化本地数据库

本地 D1 数据库可以在执行数据库初始化命令时自动创建,运行下面命令初始化本地数据库:

bun run db:migrate:local

对于本地开发,您可以使用下面的命令打开 Drizzle Studio 进行本地数据库管理:

bun run db:studio:local

创建和初始化远程数据库

远程 D1 数据库需要手动创建,创建之前需要先配置 Cloudflare API Token。

(1) 配置 Cloudflare API Token

请先完成 Cloudflare 配置,确保 Token 至少包含 Account > D1 > Edit 权限。

(2) 创建远程数据库

可以通过 Cloudflare 仪表盘或 Wrangler CLI 创建远程 D1 数据库:

Wrangler CLI

  1. 创建新的 D1 数据库:
bunx wrangler d1 create your-database-name
  1. 命令执行成功之后的提问时选择 no,并从命令输出中复制 database_id

Cloudflare 仪表盘

  1. 登录 Cloudflare 仪表盘
  2. 导航到 Storage & Databases > D1 SQL Databases
  3. 点击 Create Database
  4. 输入数据库名称,点击 Create
  5. 创建完成后,从数据库详情页复制 Database ID

创建完成后,更新 wrangler.jsonc 文件中的 database_iddatabase_name

wrangler.jsonc

"d1_databases": [
  {
    "binding": "DB",
    "database_name": "your-database-name",  // 注意修改这里,更改为你的数据库名称
    "database_id": "your-database-id",      // 注意修改这里,更改为你的数据库 ID
    "migrations_dir": "./src/db/migrations"
  }
],

同时将数据库 ID 添加到环境变量文件中:

.env

CLOUDFLARE_DATABASE_ID=your-database-id

(3) 初始化远程数据库

执行下面命令初始化远程数据库:

bun run db:migrate:remote

执行下面命令查看和管理远程数据库:

bun run db:studio:remote

如果您正在设置环境,现在可以回到环境配置文档并继续。本文档的其余部分可以稍后阅读。

环境配置设置环境变量


数据库结构

数据库 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 - 用户上传文件的元数据

数据库命令

ShipSaaS 提供了以下数据库管理命令:

命令描述
bun run db:generate生成 Drizzle 迁移文件
bun run db:push将 schema 变更推送到数据库 (开发阶段使用)
bun run db:studio:local打开 Drizzle Studio(本地数据库)
bun run db:studio:remote打开 Drizzle Studio(远程数据库)
bun run db:migrate:local应用迁移(本地数据库)
bun run db:migrate:remote应用迁移(远程数据库)
bun run auth:schema:generate生成 Better Auth schema

参考资料

下一步

现在您了解了如何在 ShipSaaS 中设置数据库,您可能想要探索这些相关功能:

On this page