ShipAny Docs

数据库

支持的数据库

ShipAny Next 使用 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.tsschema.postgres.tsschema.mysql.ts)生成。

迁移流程

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

数据表

分组数据表
鉴权usersessionaccountverification
内容configtaxonomy(分类)、post
业务ordersubscriptioncreditapiKeyinviteCodeuserRolerolepermissionrolePermission