fix(dev): 明确启动不重置数据库并新增安全 db:init
ci / 质量门禁 (push) Canceled after 0s

背景:开发机每次重启后被反馈需要重新用默认密码登录并强改,排查确认仓库启动链路(dev.sh / pnpm dev / API / worker / db:seed)均不重置密码;只有 db:reset / migrate reset / 重建数据卷会恢复种子密码。A2 收尾时为干净截图执行过 db:reset,是最近一次重置的直接原因。

改动:
- 新增 pnpm db:init = prisma migrate deploy + 幂等 seed,作为首次/迁移后的安全初始化;不重置数据、不覆盖已有密码。
- README / dev.sh / AGENTS 命令契约 / SEED.md / A1·A2 实施报告明确:日常启动不需要 DB 命令,db:reset 仅用于清库。
- 实测:对已改密的 admin 执行 db:init 后 password_hash 与 must_change_password 均未变化。

验证:pnpm format:check / pnpm lint 通过;db:init 实际执行通过。
This commit is contained in:
Stev_Wang committed 2026-11-03 13:37:34 +08:00
1 parent 7fb458f62f
commit 7824bc7b32
7 files changed
+27 -11

No files matched your search

@@ -87,12 +87,14 @@ A2-QA-01 覆盖:6 个角色端点权限三态(200/201/204 vs 403 `40301`)
```bash
pnpm check:dev # 确认 PG 5432 / Redis 6379
pnpm db:reset # 迁移 + 种子(admin / lingxi2026,首次登录须改密)
pnpm dev # API :3000 + Web :5173
pnpm db:init # 首次/迁移后:migrate deploy + 幂等种子(不重置数据、不改已有密码)
pnpm dev # API :3000 + Web :5173(日常启动不需要任何 DB 命令)
# 浏览器打开 http://127.0.0.1:5173/login → 管理中心 / 角色权限
```
种子账号:`admin` 超管、`jiang.lan` 平台管理员等 11 个账号;初始密码 `lingxi2026`,首次登录强制修改。
种子账号:`admin` 超管、`jiang.lan` 平台管理员等 11 个账号;初始密码 `lingxi2026`,首次登录强制修改(仅 `must_change_password=true` 时;改完即持久为 false)。
> 只有需要清空本地库时才执行 `pnpm db:reset`:它会 `migrate reset --force` 并重新 seed,admin 回到 `lingxi2026` + 首登改密标记。`./dev.sh` / `pnpm dev` / `pnpm db:init` 都不会重置账号密码。生产部署只执行 `prisma migrate deploy`,不执行 seed / reset。
---