背景:开发机每次重启后被反馈需要重新用默认密码登录并强改,排查确认仓库启动链路(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:
1 parent
7fb458f62f
commit
7824bc7b32
7 files changed
+27
-11
No files matched your search
+7
-3
@@ -37,11 +37,15 @@ A0 只 seed「已建表」的 `system_configs`;A1 补齐组织、账号与角
|
||||
## 使用
|
||||
|
||||
```bash
|
||||
pnpm db:migrate # 应用 a2_role_permissions_data_scopes 迁移(expand:permissions / data_scopes 两张新表)
|
||||
pnpm db:seed # 幂等写入上述种子(可重复执行;空库与存量库均已验证)
|
||||
# 本地重置:pnpm db:reset(会重新执行全部迁移与 seed)
|
||||
pnpm db:init # 推荐:migrate deploy + 幂等 seed(不重置数据、不覆盖已有密码)
|
||||
pnpm db:migrate # 开发期新增迁移时使用(prisma migrate dev)
|
||||
pnpm db:seed # 只跑种子;幂等,不覆盖已有密码
|
||||
# 本地清库:pnpm db:reset(会重建全部表并重新 seed,账号回到初始密码 + 首登改密标记)
|
||||
```
|
||||
|
||||
> **密码何时会被重置**:只有执行 `db:reset` / `prisma migrate reset` / 手工删库或重建 PG 数据卷时,种子账号才会回到 `lingxi2026` 且 `must_change_password=true`。
|
||||
> `dev.sh`、`pnpm dev`、`pnpm db:init`、`pnpm db:seed` 都不会覆盖已有用户密码;`must_change_password` 在用户成功改密后写为 `false`,之后登录不再要求改密。
|
||||
|
||||
## 与 A1 / A2 遗留的关系
|
||||
|
||||
- A1 记录的角色 / 用户种子已延续;A2 在其上补齐权限点目录、特殊权限口径(默认关闭、显式授予)与六类数据范围。
|
||||
|
||||
Reference in new issue
Block a user