数据库SQL脚本快速维护框架及方法与流程

文档序号:21407287发布日期:2020-07-07 14:41阅读:531来源:国知局
数据库SQL脚本快速维护框架及方法与流程

本发明属于计算机软件技术领域,涉及数据库sql脚本快速维护框架及其实现方法。



背景技术:

软件发布新版本时,如果数据库有变动,就需要对多个数据库环境同时进行维护。常规的维护方法是开发工程师提供数据库的sql脚本,手动上传,然后各个业务线的测试工程师再各自维护自己的数据库环境,各自手工执行sql脚本。

该常规方法具有以下缺点:

(1).一个sql脚本手工执行至少1分钟,则十个sql脚本至少需要10分钟;

(2).一个数据库环境手工执行完10分钟,则十个数据库环境就是100分钟;

(3).如果一个sql脚本执行失败,则其他数据库环境也必然失败,其他业务线的人还得去修改sql脚本,这样会导致更多的时间成本和人力成本的损耗;

(4).不满足公司快速迭代的业务场景;

(5).存在其他业务线的人漏刷sql的情况,管理者也不能直观的查看到哪个数据库环境是否已经执行过该sql脚本。



技术实现要素:

为解决上述问题,本发明公开了一种数据库sql脚本快速维护框架及其实现方法,实现多个数据库环境的快速批量执行。

为了达到上述目的,本发明提供如下技术方案:

数据库sql脚本快速维护框架,包括sql自动上传模块、配置库、批量构建模块;sql自动上传模块用于将本地sql文件自动上传至配置库;配置库用于维护sql文件和存放db.sh文件;批量构建模块用于利用jenkins,下载配置库上的sql文件和db.sh文件,上传到需要构建的数据库环境,然后触发db.sh文件批量执行sql语句;

所述db.sh文件用于初始化系统环境变量,连接要操作的数据库地址,读取sql存放目录,并执行sql文件;如果sql目录下存在多个执行文件,则依次读取后执行操作,若sql执行失败,则跳过继续往下执行,直至所有sql文件执行成功后触发消息通知。

进一步的,所述sql自动上传模块采用批处理脚本实现。

进一步的,所述db.sh文件读取多个执行文件时,根据文件名顺序进行读取,读取一个sql执行一次操作。

进一步的,所述消息通知利用钉钉实现。

数据库sql脚本快速维护方法,包括如下步骤:

步骤1,获取需要执行的多个sql文件到本地;

步骤2,将sql文件和db.bat文件放入同一目录下;

步骤3,执行db.bat脚本,将sql文件批量上传至配置库;

步骤4,登录jenkins环境,构建对应的数据库环境,下载db.sh和sql文件,在对应的环境上执行db.sh文件,db.sh文件读取sql存放目录并触发执行目录下所有的sql文件;

步骤5,当sql文件全部执行成功时,触发通知其他业务线测试工程师。

进一步的,所述步骤4中,当sql执行失败,则跳过继续往下执行。

进一步的,所述步骤5后还包括将执行的结果写入日志文件的步骤。

与现有技术相比,本发明具有如下优点和有益效果:

本发明直接用shell脚本db.sh连接数据库和执行sql文件,无需安装数据库驱动程序,能够执行多个sql文件到多个数据库环境。仅当sql文件全部执行成功时才通知给其他人执行,保证sql能在各环境执行成功。本发明能构建多个不同的数据库环境,无需搭建运行环境,实现快速维护数据库环境,且能够保证各环境一致,方案简单易行,显著提高效率,降低成本。

附图说明

图1为本发明提供的数据库sql脚本快速维护框架结构示意图。

图2为存放sql文件和db.bat文件的目录示意图。

图3为执行了db.bat后,上传sql文件至git库后的页面。

图4为jenkins页面。

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本发明提供的数据库sql脚本快速维护框架,其结构如图1所示,包括sql自动上传模块、配置库、批量构建模块,sql自动上传模块用于把本地的sql文件自动上传到配置库,本发明中采用db.bat批处理脚本实现。配置库用于维护sql文件和存放db.sh文件,批量构建模块利用jenkins,下载配置库上的sql文件和db.sh文件,上传到需要构建的数据库环境,然后触发db.sh文件执行。

db.sh文件用于实现批量执行sql语句,具体的说,其实现的功能包括:初始化linux系统环境变量,连接要操作的数据库地址,读取sql存放目录,如果sql目录下存在多个执行文件,则根据文件名顺序读取,读取一个sql执行一次操作。若sql执行失败,则跳过继续往下执行。直到把所有sql文件都执行成功了,就触发钉钉消息,通知其他人可以去jenkins上构建sql了。

执行的结果写入日志文件,方便后续日志追踪。

本发明还提供了数据库sql脚本快速维护方法,包括如下步骤:

步骤1,获取需要执行的多个sql文件到本地电脑。

步骤2,将sql文件和db.bat文件放在同一个目录下。如图2所示,3个sql文件和db.bat文件同目录。

步骤3,执行db.bat脚本(可通过鼠标双击实现),将sql文件上传到配置库,本发明采用git实现。上传后git库展示页面如图3所示,3个sql文件已被上传。

步骤4,登录jenkins环境,点击对应的数据库环境(点击图4右侧控件),则会构建对应的数据库环境。具体构建方法为:下载db.sh和sql文件,在对应的环境上去执行db.sh文件,db.sh文件会触发执行所有的sql文件。当sql执行失败,则跳过继续往下执行。

步骤5,当sql文件全部执行成功时,触发钉钉通知其他业务线的测试工程师登录jenkins上执行对应的数据库环境。即其他业务线的测试工程师不用去关注sql的业务逻辑,只要去jenkins上进行构建即可。

与前述框架相对应,本方法还包括将执行的结果写入日志文件的步骤。

基于本发明方案,业务线的人不用关注sql本身,直接去jenkins去点击一下构建就可以执行各sql文件。当一个人上传sql,并且成功执行了,就可以触发钉钉通知其他人去构建一下,这样能够保证大家都执行了该sql,并且该sql肯定是能执行成功的。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。



技术特征:

1.数据库sql脚本快速维护框架,其特征在于:包括sql自动上传模块、配置库、批量构建模块;sql自动上传模块用于将本地sql文件自动上传至配置库;配置库用于维护sql文件和存放db.sh文件;批量构建模块用于利用jenkins,下载配置库上的sql文件和db.sh文件,上传到需要构建的数据库环境,然后触发db.sh文件批量执行sql语句;

所述db.sh文件用于初始化系统环境变量,连接要操作的数据库地址,读取sql存放目录,并执行sql文件;如果sql目录下存在多个执行文件,则依次读取后执行操作,若sql执行失败,则跳过继续往下执行,直至所有sql文件执行成功后触发消息通知。

2.根据权利要求1所述的数据库sql脚本快速维护框架,其特征在于:所述sql自动上传模块采用批处理脚本实现。

3.根据权利要求1所述的数据库sql脚本快速维护框架,其特征在于:所述db.sh文件读取多个执行文件时,根据文件名顺序进行读取,读取一个sql执行一次操作。

4.根据权利要求1所述的数据库sql脚本快速维护框架,其特征在于:所述消息通知利用钉钉实现。

5.数据库sql脚本快速维护方法,其特征在于,包括如下步骤:

步骤1,获取需要执行的多个sql文件到本地;

步骤2,将sql文件和db.bat文件放入同一目录下;

步骤3,执行db.bat脚本,将sql文件批量上传至配置库;

步骤4,登录jenkins环境,构建对应的数据库环境,下载db.sh和sql文件,在对应的环境上执行db.sh文件,db.sh文件读取sql存放目录并触发执行目录下所有的sql文件;

步骤5,当sql文件全部执行成功时,触发通知其他业务线测试工程师。

6.根据权利要求5所述的数据库sql脚本快速维护方法,其特征在于,所述步骤4中,当sql执行失败,则跳过继续往下执行。

7.根据权利要求5所述的数据库sql脚本快速维护方法,其特征在于,所述步骤5后还包括将执行的结果写入日志文件的步骤。


技术总结
本发明公开了一种数据库SQL脚本快速维护框架及其实现方法,框架包括:SQL自动上传模块、配置库、批量构建模块。方法包括如下步骤:获取多个SQL文件到本地;将SQL文件和db.bat文件放入同一目录下;执行db.bat脚本将SQL文件批量上传至配置库;登录Jenkins环境构建对应的数据库环境,下载db.sh和SQL文件,在对应的环境上执行db.sh文件,db.sh文件触发执行sql存放目录目录下所有的SQL文件;当SQL文件全部执行成功时,触发通知其他业务线测试工程师。本发明能够执行多个SQL文件到多个数据库环境,仅当SQL文件全部执行成功时才通知给其他人执行,保证sql能在各环境执行成功。

技术研发人员:方鑫
受保护的技术使用者:众能联合数字技术有限公司
技术研发日:2020.04.02
技术公布日:2020.07.07
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1