You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2.3 KiB

T1 任务简报:V38/V39 迁移与通用清单种子

Where This Fits

  • Wave: W1
  • Depends on: 无
  • Contract: changes/n04-onboard/execution-contract.md
  • Specs: changes/n04-onboard/specs/onboarding-checklist/spec.md、changes/n04-onboard/specs/company-knowledge/spec.md
  • Design: changes/n04-onboard/design.md 的 Data Model 与 Architecture 部分

Objective

新增 V38 建表迁移和 V39 通用清单种子,并先用失败测试锁定表结构、约束、通用项数量和稳定排序。

Files In Scope

  • mydreamjob-server/src/main/resources/db/migration/V38__onboarding_checklist_and_company_knowledge.sql
  • mydreamjob-server/src/main/resources/db/migration/V39__onboarding_standard_checklist_seed.sql
  • mydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingMigrationTest.java
  • mydreamjob-server/src/test/java/com/mydreamjob/onboarding/OnboardingSeedDataIntegrationTest.java
  • 如项目迁移测试需要共享测试配置,仅可修改同一测试包内的辅助文件。

Required Behavior

  • 创建 onboarding_checklist_items、student_onboarding_progress、company_knowledge。
  • onboarding_checklist_items 至少包含合同规定的字段、唯一键、活动/排序索引、company_id 对 companies(id) 的外键。
  • student_onboarding_progress 必须对学生与条目唯一,并建立 users(id)、onboarding_checklist_items(id) 外键。
  • company_knowledge.company_id 唯一,并建立 companies(id) 外键。
  • V39 必须写入稳定的通用清单;每一步使用明确 item_key、分类、排序和必填标记,不得使用随机值。
  • 迁移必须兼容 H2 MODE=MySQL 与 MySQL 8.4。

TDD Requirement

  1. 先写 OnboardingMigrationTest、OnboardingSeedDataIntegrationTest,确认因表或种子不存在而失败。
  2. 再写 V38/V39 让测试通过。
  3. 不得先写迁移再补测试。

Evidence Commands

cd D:\1\zhi\zhilai\mydreamjob-server
mvn -Dtest=OnboardingMigrationTest,OnboardingSeedDataIntegrationTest test

Done Definition

  • 两条证据测试通过。
  • 测试断言三张表存在、关键唯一约束/外键/索引可验证、通用种子数量大于 0 且排序稳定。
  • 不修改 V1-V37。
  • 不创建 W2 实体、Repository、Service 或 Controller。