赞
踩
背景:由于项目构建会涉及一些SQL脚本,每次需要run一堆的SQL来升级环境。所以想用一些脚本来自动完成这项工作。
思路:首先把所有需要跑的SQL放在一个文件夹内,按照跑的顺序编码排列好;再通过ANT脚本来读取这个文件夹下面的所有SQL,然后通过ANT连接数据库,按顺序逐个执行SQL;每个SQL执行完会输出一个log文件,记录执行状况;如果有一个SQL文件执行错误就会输出错误的log并停止执行下一步,(因为本人的SQL是有关联的,一旦前面有一个出错,后面也都会有点问题,所以需要停下来。如果你不想停止,那就捕获异常,继续执行下面的操作。)。当ANT执行出错以后,Jenkins的任务也会停止变红,并且发送消息到Email。
--------------------------------------------------------------------------------------
环境:
编写ANT脚本:(由于是私有项目,只能共享部分实现思路code)
1. 首先,定义antlib task,后面会用到antlib内置的资源比较器。
- <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${lib}/ant-contrib-1.0b3.jar"/>
- <taskdef resource="net/sf/incanto/antlib.xml" classpath="${lib}/incanto-0.2.4.jar"/>
2. 定义DB连接的一些信息(定义property),此处也可以使用外部的properties文件来导入。
<property file="settings/build.properties"/>
3. 定义一个target:runSqlInFolder
使用try catch包裹SQL执行标签。(我这里用的是mysql,所以用的是sql标签,如果使用oracle可以使用sqlplus)
下面的<fail>是为了让Jenkins感受到ANT执行出错了,然后Jenkins就会自动停止任务。
<execdirsql>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。