27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
|
|
# LSFX Mock Server `ccdi_account_info` 异常账户字段补迁移后端实施文档
|
||
|
|
|
||
|
|
## 背景
|
||
|
|
|
||
|
|
- `lsfx-mock-server` 上传接口 `/watson/api/project/remoteUploadSplitFile` 在写入 `ccdi_account_info` 时使用了 `is_self_account`、`trans_risk_level` 字段。
|
||
|
|
- 当前开发库中的 `ccdi_account_info` 为历史表结构,不包含这两列,导致 `AbnormalAccountBaselineService.apply(...)` 执行 upsert 时依次抛出 `Unknown column 'is_self_account' in 'field list'`、`Unknown column 'trans_risk_level' in 'field list'`,上传接口直接返回 500。
|
||
|
|
|
||
|
|
## 本次修改
|
||
|
|
|
||
|
|
- 新增增量脚本 `sql/migration/2026-04-15-sync-ccdi-account-info-abnormal-account-columns.sql`。
|
||
|
|
- 脚本以最短路径为已有 `ccdi_account_info` 表补齐异常账户同步当前必需的字段,并保持可重复执行:
|
||
|
|
- 使用 `information_schema.columns` 判断字段是否已存在
|
||
|
|
- 通过 `PREPARE / EXECUTE` 仅在缺列时执行 `ALTER TABLE`
|
||
|
|
- 补齐 `is_self_account` 与 `trans_risk_level`
|
||
|
|
- 列位置与当前写库 SQL 保持一致
|
||
|
|
- 新增回归测试 `lsfx-mock-server/tests/test_schema_migration_scripts.py`,锁定该增量脚本必须存在且包含两条补列语句。
|
||
|
|
|
||
|
|
## 验证
|
||
|
|
|
||
|
|
- `python3 -m pytest /Users/wkc/Desktop/ccdi/ccdi/lsfx-mock-server/tests/test_schema_migration_scripts.py -q`
|
||
|
|
- 使用 `bin/mysql_utf8_exec.sh` 执行增量脚本后,复查 `SHOW COLUMNS FROM ccdi_account_info`,确认存在 `is_self_account`、`trans_risk_level` 字段。
|
||
|
|
|
||
|
|
## 影响范围
|
||
|
|
|
||
|
|
- 仅影响 `lsfx-mock-server` 依赖的 `ccdi_account_info` 历史表结构补齐。
|
||
|
|
- 不修改接口协议,不改动前端。
|