客户频繁变更测试数据,是很多项目里绕不开的日常。每次拿到新的 .xlsx,如果还靠手工改 SQL,既慢又容易出错。
需要先说明一点:这里说的生成器并不是一个开箱即用的通用工具,而是针对具体项目文件需求、借助 AI 生成出来的脚本。它的定位是------把"根据客户文件生成 SQL"这件事,从每次都用 AI 现场生成,收敛成一份固定的、可复用的脚本。只要客户的文件结构没有大变化,后续换数据时直接复用脚本即可,不必每次都重新找 AI 生成。
01 | 生成器在哪里
生成器脚本位于:
scripts/generate_v2.py
使用方式很直接:把更新后的 .xlsx 文件放入 reference/ 目录,确认已安装脚本所需依赖(如 Python 3 及对应第三方库),然后在项目根目录执行:
python3 scripts/generate_v2.py
脚本会重新生成并覆盖 scripts/v2/ 下的这些文件:
01_ddl.sql02_dml.sql03_verify.sqlrun_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一起成长~