Files
opendance-web/tasks/002-db-migration.md
T
zijunchiang 9f08d316d0 docs: 清除文档中的真实部署信息与易混淆 Unicode 字符
需求:公开仓库的说明文档不应暴露开发/部署期信息,且 Gitea 会对 README.txt
报"含模棱两可的 Unicode 字符"。

敏感信息(全部替换为占位符或文档示例值):
- 真实数据库实例:DB_HOST=192.168.150.10 / DB_USER=dpendance / DB_NAME=dpendance
  → <数据库主机> / opendance_app / opendance(web-server/.env.example、
  deploy/.env.example、contracts/database.md ×3 库、project.yaml、README.txt
  的建库 SQL、tasks/001、tasks/002)
- 内网网段 192.168.150.0/24 / 192.168.150.20 / 192.168.1.10
  → RFC 5737 文档网段 192.0.2.0/24 等(含测试夹具,行为不变)
- 真实 Gitea 域名 → https://<Gitea 地址>/<owner>/<repo>(systemd 单元、
  Windows/Android README 的交叉链接)
- 测试夹具里的真实口令字面量 → 虚构口令(仍覆盖特殊字符场景)
- 保留 /opt/opendance、/var/lib/opendance 等产品默认安装路径(非敏感)

README.txt 易混淆字符:
- 全角拉丁字母(I/K 等)与全角 ASCII 标点((),:;?)→ 半角 + 中文排版空格
- 正文里的乱码字节样例(模å…)→ 改为文字描述
- × → x,★ → *
- 注意:代码/测试/契约里的全角「IK」是 MMD 真实骨骼名,**必须保留**,
  已回滚误改(mmd-skeleton.ts、mmd-vmd.spec.ts、inspect-vmd.mjs、各契约)

验证:168 项单测通过(含 VMD 31 项,确认全角骨骼名未被破坏)。
2026-09-15 21:25:25 +08:00

1.8 KiB
Raw Blame History

T-WEB-002 TypeORM 迁移生成表结构

  • 状态:done
  • 依赖:T-WEB-001

目标

用 TypeORM migration 在现有实例的 opendance 库中建立全部表结构。不使用 DB_SYNCHRONIZE,迁移必须可逆。

load

DSH.md
contracts/database.md
contracts/data-models.md
web-server/src/entities/*.entity.ts
web-server/src/migrations/*.ts
web-server/src/db/data-source.ts

表结构

表 用途 关键列
assets 上传文件元数据 sha256 唯一索引(去重)、stored_path、size
songs 曲目 来源五元组、status、deleted_at
motions 动作数据 song_id FK(ON DELETE SET NULL)、预处理产物列
models 角色模型 format、vrm_version、is_primary
review_records 审核流水 (target_type, target_id) 复合索引

统一约定(contracts/database.md):

  • 表名 snake_case 复数;主键 BIGINT AUTO_INCREMENT
  • 时间列 DATETIME;软删除 deleted_at
  • Tags 使用 simple-json(MariaDB 下落 LONGTEXT,规避 JSON 类型差异)

交付物

  • web-server/src/entities/{asset,song,motion,model,review-record}.entity.ts
  • web-server/src/migrations/1789382903060-InitSchema.ts(由 migration:generate 对真实库生成,保证与实体零漂移)
  • web-server/src/db/data-source.ts 的 migrations 通配配置

验收

cd web-server
npm run migration:run      # 1 migrations were executed successfully
npm run migration:show     # [X] 1 InitSchema1789382903060
npm run migration:revert && npm run migration:run   # 验证可逆

结果

  • 迁移已在 opendance 库执行成功,创建 5 张业务表 + typeorm_migrations。
  • down() 完整删除索引、外键与表,可逆性通过 migration:revert 验证。