yeg
2026-09-17 1805a7b9648ff9cfbd19129255a5a4fa62f0261e
docs/agents/testing.md
@@ -12,7 +12,7 @@
三条由此推出的硬约束:
- **迁移必须同时兼容 5.7 与 8.0**:测试只在 8.0 上跑,跑绿不代表开发库能执行(`V148` 的存储过程写法
- **迁移必须同时兼容 5.7 与 8.0**:测试只在 8.0 上跑,跑绿不代表开发库能执行(`V151` 的存储过程写法
  已在 5.7 上实跑验证过,但每次新增迁移都值得照做一遍)。
- **开发库的结构不由 Flyway 维护**:缺表缺列只能靠启动时的初始化器 best-effort 补,补不上就手工补(见下)。
- 本机 `8134` 实例上另有 `talent_card`、`talent_card_dryrun`、`talent_card_verify1` 三个库:它们是
@@ -79,8 +79,8 @@
  逐条执行 SQL(默认连开发库,可 `-Database/-DatabaseHost/-Port` 覆盖;不带 `-Yes` 只打印不执行)。
  它认得 `DELIMITER`,所以 `db/migration/V*.sql` 也能原样重放。默认指向**开发库**,别拿它去改测试库
  (测试库由 Flyway 从 `db/migration` 重建,手工 DDL 会让迁移与 history 表对不上)。
  开发者首次拿到新列:2026-09-17 的 `V149`(支付流水两列)与 `V150`(手输核销码计数表)就是这样落地的,
  对应脚本 `scripts/dev-schema-v149-payment-attempt.sql`(写法可重复执行的那份在迁移里,两者等价)。
  开发者首次拿到新列:2026-09-17 的 `V152`(支付流水两列)与 `V153`(手输核销码计数表)就是这样落地的,
  对应脚本 `scripts/dev-schema-v152-payment-attempt.sql`(写法可重复执行的那份在迁移里,两者等价)。
- 动结构之前先备份。本机**没有** mysql 客户端、也没有 Docker(README 里指向 `D:\MySQL\...` 和
  `docker exec talent-card-mysql-1` 的两条老做法都已失效),要备份就在 DB 主机上做,或照
  `scripts/reset-test-db.ps1` 的办法用项目已有的 JDBC 驱动写个单文件程序。