ShipAny Docs

数据库

ShipAny TanStack 基于 Drizzle ORM 支持 PostgreSQL、MySQL、SQLite、Turso、Cloudflare D1:切换数据库、同步表结构与迁移。

支持的数据库

ShipAny TanStack 使用 Drizzle ORM,通过 DATABASE_PROVIDER + DATABASE_URL 切换:

ProviderDATABASE_URL 示例说明
sqlitefile:data/local.db默认——本地开发零配置
postgrespostgresql://user:pass@localhost:5432/dbname可选 DB_SCHEMA
mysqlmysql://user:pass@localhost:3306/dbnameMySQL 5.7+
tursolibsql://your-db.turso.io需配 DATABASE_AUTH_TOKEN
d1(D1 绑定,无 URL)部署 Cloudflare Workers 时使用

切换数据库

# 1. 修改 .env.development 的 DATABASE_PROVIDER + DATABASE_URL
# 2. 把对应方言的 schema 模板(.sqlite/.postgres/.mysql)复制为 schema.ts
pnpm db:setup
# 3. 应用 schema
pnpm db:push

Schema 位于 src/config/db/schema.ts,由方言模板(schema.sqlite.ts、schema.postgres.ts、schema.mysql.ts)生成。

迁移流程

  • 开发环境 — pnpm db:push 直接应用 schema 变更,不产生 SQL 文件。
  • 生产环境 — 生成版本化迁移并执行:
pnpm db:generate   # 在 ./drizzle 目录生成 .sql 迁移文件
pnpm db:migrate    # 执行未应用的迁移
  • 数据浏览 — pnpm db:studio 打开 Drizzle Studio。

数据表

分组数据表
鉴权user、session、account、verification
内容config、taxonomy(分类)、post
业务order、subscription、credit、apiKey、inviteCode、userRole、role、permission、rolePermission