3.6 KiB
3.6 KiB
实施说明
只读排查结论
cd server && npx prisma migrate status显示本地回归库hyb_oa_regression有 12 个迁移未应用:20260513214500_biz8_purchase_project_link20260517090437_cashier_payment_receipts20260517145928_attendance_unified_wecom_sync20260517200040_hr_wecom_directory_v120260518184319_wecom_hr_master_sync_v120260519223206_wecom_approval_archive_minimum_v120260520124804_wecom_checkin_summary_archive_v120260522191833_asset_governance_v120260524193000_owner_self_fallback_role20260526211500_email_code_login20260528113000_policy_acknowledgements20260528162000_business_attachment_governance_v1
- 实际列检查显示当前库只命中
employees.employee_no,缺少asset_cards.asset_type、asset_cards.sensitivity_level、purchase_requests.project_id、approval_rules.owner_self_fallback_role等当前代码依赖字段。 - 缺列来源与未应用迁移一致:
purchase_requests.project_id来自20260513214500_biz8_purchase_project_linkasset_cards.asset_type来自20260522191833_asset_governance_v1approval_rules.owner_self_fallback_role来自20260524193000_owner_self_fallback_role
风险判断
- 这不是前端资产页面问题,也不是
assets-flow.spec.ts的测试假设问题;根因是本地回归库落后于 Prisma schema 和应用代码。 - 未应用迁移粗查未发现
DROP、TRUNCATE或数据库 reset;主要是新增列、表、索引、外键,以及给审批规则兜底角色补默认值。 - 仍属于数据库结构变更,按项目规则需要明确确认后再执行。
建议处理
- 在本地回归库执行
cd server && npx prisma migrate deploy,只应用已提交迁移,不做 reset。 - 应用后运行:
cd server && npm run prisma:validatecd server && npm run seed:dev-users(如命令存在且当前测试依赖本地账号)- 聚焦
assets-flow.spec.ts - 必要前端回归:
cd client && npm run typecheck && npm run build python3 ./.trellis/scripts/task.py validate 05-31-fix-assets-e2e-schema-driftnode scripts/qa/check-trellis-governance.mjsgit diff --check
执行结果
- 已获得用户确认后执行
cd server && npx prisma migrate deploy,12 个待应用迁移全部成功应用到本地回归库。 cd server && npx prisma migrate status复查显示数据库结构已是最新。- 关键字段复查已命中:
approval_rules.owner_self_fallback_roleasset_cards.asset_typeasset_cards.sensitivity_levelpurchase_requests.project_idemployees.employee_no
cd server && npm run seed:dev-users已完成,开发账号与基础资料可用。cd client && E2E_BASE_URL=http://127.0.0.1:3000 npx playwright test tests/e2e/assets-flow.spec.ts --workers=1 --reporter=list已通过。- E2E 修正点:
- 创建资产后页面已经进入详情,不再点击列表页旧的
全范围按钮。 - 资产详情同时展示流转摘要和资产摘要,归属人/位置断言改为匹配首个可见命中,避免 Playwright strict mode 误判。
- 创建资产后页面已经进入详情,不再点击列表页旧的
- 本地服务启动修正:
server/src/index.js在读取配置前显式加载dotenv/config,避免npm run dev在本地.env存在时仍因缺少JWT_SECRET失败。
- 已用正常
npm run dev启动本地服务,并通过/ready与资产真实 E2E 复核,不再依赖node -r dotenv/config启动绕过。 - 已更新
.trellis/spec/hyb-oa/backend-fastify-prisma.md,沉淀本地回归库迁移漂移和 server dotenv 启动顺序规则。