按库里的表批量生成,user 和 users 两张表都被转成 User 实体,生成结束后只剩一份,日志里没有任何提示。日志里能对上时间点,这种反而好排。

表名转类名只做了下划线转驼峰和首字母大写,没有处理单复数和重名。批量模式没有汇总冲突,后写的直接覆盖。这一点先确认清楚,后面就不用反复试。

python gen.py --all --dry-run
# 期望输出 conflict: user / users -> User
python gen.py --map user=UserEntity --map users=UserList

「批量生成命名冲突」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

处理上按这个顺序:生成前先算一遍目标文件名 重复的直接报错退出;表名单复数映射做成可配置的映射表;冲突时打印来源表名 让人工改名;批量模式改成先全量校验再落盘。

结果对不对很好判断,dry-run 阶段就报出冲突 指定映射后 12 张表生成 12 份文件 数量一致。

作者 9823189