Files
ccdi/docs/plans/backend/2026-04-15-lsfx-mock-server-ccdi-account-info-abnormal-account-columns-migration-implementation.md
2026-04-17 10:18:13 +08:00

1.6 KiB

LSFX Mock Server ccdi_account_info 异常账户字段补迁移后端实施文档

背景

  • lsfx-mock-server 上传接口 /watson/api/project/remoteUploadSplitFile 在写入 ccdi_account_info 时使用了 is_self_accounttrans_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_accounttrans_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_accounttrans_risk_level 字段。

影响范围

  • 仅影响 lsfx-mock-server 依赖的 ccdi_account_info 历史表结构补齐。
  • 不修改接口协议,不改动前端。