重复SQL执行定义XML本地扫描工具

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

重复SQL执行定义XML本地扫描工具

丑话只适合在前面说


  • 工具只做辅助,无法完全规避问题;养成良好的开发规范,不改已经发布的脚本,不建重名文件,比工具更重要;

  • 工具检查的是sql脚本执行定义文件(一般以应用标识.xml的格式命名,下同)的内容,因为只有在这个文件中定义的脚本才会被执行;不会检查datamodel下面真实的sql文件是否重名;

  • 没有经过大面积验证,只能用在一般场景;如果有未覆盖到的、边界的场景导致扫描不准确或者报错,请联系作者改进,感谢~

  • 只关心怎么用?->三、怎么使用?


一、为什么做这件事?


在苍穹平台下,基线(不含)之前的测试环境,sql脚本文件允许重复执行,方便在研产品维护表结构和预置数据;基线(含)之后的测试环境,如基线、预发布、沙箱、灰度等,在升级时,已执行过的同名的脚本文件(即使有修改),不重复执行。(——具体到不同的产品线可能有差异,也可能会调整,以实际为准。)


对于不熟悉该机制的研发人员来讲,容易在脚本执行定义文件中,添加与之前的脚本不同路径、文件名相同的节点,在升级时,脚本中的内容不会被执行,导致表结构缺失、预置数据丢失等问题。

image.webp


按开头说明的升级机制,此类问题能够最早发现的阶段是基线,处理问题的成本已相对较高;稍有不慎,可能会泄露到沙箱、客户灰度等外部环境,影响不可谓不大。


二、有什么优缺点?


  1. 该工具是基于IntelliJ IDEA开发的一款插件,其他IDE无法使用;但基于IDEA大量使用的现状,不难找到能够使用该插件的开发人员;

  2. 该工具仅能在开发环境本地使用,比较推荐给项目组DBA做脚本重复定义的检查;无法发布到构建流水线等通用的工具环境中运行;

  3. 该工具能够支持单个文件内、多个文件之间定义的重复.sql文件名检查,以sql文件名的维度输出重复次数、所在xml文件路径(跳转文末看效果);待检查xml文件以文本的形式输入,暂不支持文件选择;鉴于此,检查的范围有限,一般给予项目组内负责的多个应用之间做检查,无法支持到跨领域、全领域;

  4. 该工具仅支持应用内的sql执行定义xml文件(结构如下示例,DataModel为根节点、SqlScript为脚本定义节点);其他xml不支持;
    image.webp


三、怎么使用?


  1. 获取附件repeatnodescanner.zip,解压到任意路径;

  2. 进入IDEA设置-Plugins-Install Plugin from Disk...(不同版本可能有差异),选择解压后的jar文件执行安装(可能提示重启IDEA,点击重启生效
    image.webp
    image.webp

  3. 插件路径:Tools-KDPlugins-Repeat Nodes Scanner,点击后弹出窗口;
    image.webp

  4. 在上方输入框输入xml完整路径,点击“扫描”按钮,在下方输出检查结果;

    存在重复sql文件定义:
    image.webp
    不存在重复sql定义:
    image.webp

四、使用效果


最后,直观展示一下效果。

P.S. 仅模拟修改xml SqlScript节点文件名的方式达到不重复的目的,实际上还需要重命名相应路径下的sql文件。

RepeatNodesScanner3.webp



repeatnodescanner.zip

重复SQL执行定义XML本地扫描工具

丑话只适合在前面说工具只做辅助,无法完全规避问题;养成良好的开发规范,不改已经发布的脚本,不建重名文件,比工具更重要;工具检查的是...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息