# 修复资产真实 E2E 数据库结构漂移 ## Goal 查清并修复真实资产 E2E 被本地数据库结构漂移阻塞的问题,让资产流程可以在本地真实 API/数据库环境完成回归验证。修复必须遵守当前业务边界:hyb-oa 没有 ERP,资产管理按 OA 台账处理,不引入新的业务功能。 ## What I Already Know - 上轮资产一致性改造已提交:`f299cee 修正 ERP 边界与资产页面一致性(05-30-fix-erp-boundary-asset-consistency)`。 - Mock 浏览器检查已验证资产页面无 ERP 文案、右侧操作区、中文姓名和员工号展示。 - 真实 `assets-flow.spec.ts` 受本地数据库结构漂移阻塞,已记录缺列包括: - `asset_cards.asset_type` - `purchase_requests.project_id` - 不能擅自执行数据库重置、生产迁移或真实数据写入。 - 用户已确认系统没有 ERP,以后也不会有 ERP。 ## Assumptions - 本轮优先处理本地/测试环境验证阻塞,不扩大到公网部署。 - 如果需要修改数据库结构,先通过只读排查确认迁移状态,再使用项目已有迁移机制;不使用破坏性 reset。 - 如果问题只是本地库落后于迁移,优先给出清晰、安全的本地补齐路径。 ## Scope - 本地回归数据库 `hyb_oa_regression` 与 Prisma 迁移目录的一致性排查和修复。 - 资产真实 E2E 主链路 `assets-flow.spec.ts` 的执行恢复。 - 如资产页面改造导致 E2E 断言落后,仅更新测试断言以匹配当前已确认页面规则。 - 如本地服务启动流程阻塞 E2E,修复不改变业务行为的启动加载问题。 - 记录本轮数据库结构漂移原因、修复方式和验证结果。 ## Requirements - 排查 Prisma schema、迁移目录、本地数据库实际结构与 E2E 测试准备逻辑之间的差异。 - 找出 `asset_cards.asset_type`、`purchase_requests.project_id` 等缺列的来源:迁移未应用、迁移缺失、测试数据准备假设错误,或代码/数据库版本不一致。 - 修复应尽量使用已有迁移、seed、测试准备脚本和项目约定。 - 不引入 ERP 文案、ERP 字段、ERP 同步入口或未来 ERP 接入口径。 - 不改变资产页面当前已确定的信息架构和交互规则,除非真实 E2E 揭示必要缺陷。 ## Test Plan - `cd server && npx prisma migrate status` - `cd server && npx prisma migrate deploy`(仅在用户确认后对本地回归库执行) - `cd server && npm run seed:dev-users` - `cd server && npm run prisma:validate` - `cd server && node --check src/index.js` - `bash scripts/qa/check-local-migration-drift.sh` - `cd client && npm run build` - `cd client && E2E_BASE_URL=http://127.0.0.1:3000 npx playwright test tests/e2e/assets-flow.spec.ts --workers=1 --reporter=list` - `python3 ./.trellis/scripts/task.py validate 05-31-fix-assets-e2e-schema-drift` - `node scripts/qa/check-trellis-governance.mjs` - `git diff --check` ## Acceptance Criteria - [x] 明确记录数据库结构漂移的根因和处理方式。 - [x] `assets-flow.spec.ts` 能进入并完成资产流程验证;如仍被外部环境阻塞,需记录新的具体阻塞点。 - [x] 相关本地验证通过:前端必要检查、后端 Prisma 校验、Trellis 校验、`git diff --check`。 - [x] 如产生稳定经验,更新对应 spec 或任务实施说明。 - [x] 所有变更以中文 commit 提交,commit message 包含本任务名。 ## Out of Scope - 不做公网部署。 - 不改生产数据库。 - 不做数据库破坏性重置。 - 不重新设计资产页面、报销页面、付款页面等 UI。 - 不新增 ERP、考勤、请假等业务能力。 ## Technical Notes - 相关文件预计包括: - `server/prisma/schema.prisma` - `server/prisma/migrations/` - `client/tests/e2e/assets-flow.spec.ts` - `server/src/scripts/seed-dev.js` - `.trellis/tasks/05-30-fix-erp-boundary-asset-consistency/implement.md` - 先只读运行迁移状态和 schema 检查;需要写库的命令单独确认风险后执行。