客户总改测试数据?用脚本一键重生成 SQL

客户频繁变更测试数据,是很多项目里绕不开的日常。每次拿到新的 .xlsx,如果还靠手工改 SQL,既慢又容易出错。

需要先说明一点:这里说的生成器并不是一个开箱即用的通用工具,而是针对具体项目文件需求、借助 AI 生成出来的脚本。它的定位是------把"根据客户文件生成 SQL"这件事,从每次都用 AI 现场生成,收敛成一份固定的、可复用的脚本。只要客户的文件结构没有大变化,后续换数据时直接复用脚本即可,不必每次都重新找 AI 生成。

01 | 生成器在哪里

生成器脚本位于:

scripts/generate_v2.py

使用方式很直接:把更新后的 .xlsx 文件放入 reference/ 目录,确认已安装脚本所需依赖(如 Python 3 及对应第三方库),然后在项目根目录执行:

python3 scripts/generate_v2.py

脚本会重新生成并覆盖 scripts/v2/ 下的这些文件:

  • 01_ddl.sql
  • 02_dml.sql
  • 03_verify.sql
  • run_all.sql
  • 生成清单.md

也就是说,客户换了数据,笔者只需要替换 reference/ 里的表格,再跑一次命令即可。

整个流程可以概括为下面几步:
flowchart LR A客户更新 .xlsx --> B放入 reference/ B --> C执行 python3 scripts/generate_v2.py C --> D覆盖生成 scripts/v2/ 下文件 D --> E查看终端输出与生成清单.md E --> F执行 V2 脚本

02 | 使用约定

为了让脚本正确识别数据,需要遵守几条约定:

  • 文件名作为表名。
  • 第一行必须是字段名。
  • 默认读取每个文件的第一个工作表。
  • 第二行起全部作为数据。
  • reference/ 中所有 .xlsx 都会参与生成。

这些约定决定了表名和字段的解析方式,准备数据时按此整理即可。

从输入到输出的对应关系如下:
flowchart TD subgraph 输入 reference/ X1文件A.xlsx X2文件B.xlsx X3文件C.xlsx end X1 --> Pgenerate_v2.py X2 --> P X3 --> P P --> O101_ddl.sql P --> O202_dml.sql P --> O303_verify.sql P --> O4run_all.sql P --> O5生成清单.md

03 | 执行前要注意什么

生成出来的 V2 脚本在执行时,会删除并重建涉及的同名表,属于破坏性操作,可能导致同名表原有数据丢失。执行前请确认目标库、做好数据备份,并优先在测试环境验证;确认无误后再在目标环境执行,必要时准备好回滚方案。

另外,旧版 scripts/*.sql 不会被修改,原有脚本保持原样。

新旧脚本的差异可以对照如下:
flowchart LR subgraph 旧版 Lscripts/\*.sql end subgraph 新版 Vscripts/v2/\*.sql end L --- LN不会被修改 V --- VN执行时删除并重建同名表 旧版 ~~~ 新版

04 | 生成后如何检查

建议生成后先看终端输出,确认表数和总行数,例如:

Generated <表数> tables and <总行数> rows(具体数值取决于 reference/ 中的文件内容)

同时检查 scripts/v2/生成清单.md 中的文件哈希、列数和行数是否符合预期。这样能在执行前尽早发现数据或格式问题。

关注我,和AI一起成长~