背景: - 本轮部门管理联调后执行了 pnpm db:reset 清理测试数据,清空本地库, 导致用户手工改过的登录密码被重置回 lingxi2026; - 之前只保证了 ./dev.sh / pnpm dev / pnpm db:init 不会重置数据, db:reset 本身仍可被脚本或助手无提示执行,问题没有真正兜住。 改动: - 新增 scripts/db-reset.mjs:默认拒绝执行并打印影响;只有显式 ALLOW_DB_RESET=1 才调用 prisma migrate reset --force; - package.json 的 db:reset 指向该脚本; - README / AGENTS §6 §11 / e2e README / A1 实施报告同步: 日常迁移补种子只用 pnpm db:init,验证/联调中禁止 db:reset; e2e 会改写 actor 密码,需使用专用账号或独立测试库。 影响面: - 确需清库时多一步显式确认;迁移、启动、单测、int 测试不受影响。 回滚方式: - 回滚本提交即恢复 db:reset 直接执行 prisma migrate reset --force。 验证证据: - pnpm db:reset 无 ALLOW_DB_RESET 时退出码 1,并打印拦截说明; - pnpm format:check / lint 通过;node --check scripts/db-reset.mjs 通过。
This commit is contained in:
1 parent
981757b76c
commit
3e384febf3
6 files changed
+53
-6
No files matched your search
@@ -115,7 +115,7 @@ docs/ PRD / 技术架构 / 立项建议 / 工程规范
|
||||
| 构建 | `pnpm build` |
|
||||
| 质量 | `pnpm lint` · `pnpm lint:fix` · `pnpm format` · `pnpm format:check` · `pnpm typecheck` |
|
||||
| 测试 | `pnpm test` · `pnpm test:int` · `pnpm test:e2e` · `pnpm ci:local` |
|
||||
| 数据库 | `pnpm db:init`(迁移 + 幂等种子,不重置数据)· `pnpm db:migrate` · `pnpm db:reset`(清库重建,慎用;禁止手工删库 / 删数据卷) |
|
||||
| 数据库 | `pnpm db:init`(迁移 + 幂等种子,不重置数据)· `pnpm db:migrate` · `pnpm db:reset`(清库重建;默认被拦截,必须 `ALLOW_DB_RESET=1` 显式确认;禁止手工删库 / 删数据卷) |
|
||||
| 契约 | `pnpm openapi:diff` |
|
||||
|
||||
> 文档、脚本、CI 中出现的命令必须与上表一致,禁止自造别名。
|
||||
@@ -180,6 +180,7 @@ docs/ PRD / 技术架构 / 立项建议 / 工程规范
|
||||
3. 禁止修改已合并的 `prisma/migrations/`;禁止 `--no-verify` 提交。
|
||||
4. 涉及业务口径不确定时,输出 `【待确认 Q-xx】` 并说明影响面,**不要编造**。
|
||||
5. 改动跨 >3 个模块或触及 §10 清单时,先给出方案与影响面,等确认后再动手。
|
||||
6. **禁止在验证 / 联调中执行 `pnpm db:reset`**:它会清空本地库并重置所有账号密码;日常初始化只用 `pnpm db:init`。确需清库须先获得用户明确同意,并显式 `ALLOW_DB_RESET=1`。
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user