jenkins配置自动执行sql脚本
shell脚本:
bigsql="select big_version,small_version from d0mstore.db_current_version order by big_version desc limit 1;"
big_version=`mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "${bigsql}" 2> /dev/null | awk NR==2'{print $1}'`
echo $big_version
smallsql="select big_version,small_version from d0mstore.db_current_version where big_version='$big_version' order by small_version desc limit 1;"
small_version=`mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "${smallsql}" 2> /dev/null | awk NR==2'{print $2}'`
echo $small_version
#查看大版本
for i in `ls /root/sql`
do
#大版本未更新情况
if (("$i" == "$big_version"));then
echo "$i"
#查看小版本
for x in `ls /root/sql/\$i`
do
#判断小版本是否有更新sql文件
if (("$x" > "$small_version"));then
echo "$x"
#执行版本sql
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 < /root/sql/$i/$x/DML.sql
if [ $? == 0 ];then
#记录执行当前的版本号
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "insert into d0mstore.db_current_version(big_version,small_version) values('$i','$x');"
#记录当前版本好到执行历史表
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "insert into d0mstore.db_current_version_history(big_version,small_version) values('$i','$x');" && echo "scripts Success"
else
echo "scripts FALSE"
fi
else
echo "scripts is not updated"
fi
done
#新增大版本情况
elif (("$i" > "$big_version"));then
#查看新增大版本下的小版本
for c in `ls /root/sql/\$i`
do
#执行小版本下的sql文件
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 < /root/sql/$i/$c/DML.sql
#判断sql是否执行成功,执行成功则执行插入sql执行记录表和历史执行表
if [ $? == 0 ];then
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "insert into d0mstore.db_current_version(big_version,small_version) values('$i','$c');"
mysql -u数据库用户 -p密码 -h ip -P 数据库端口 -e "insert into d0mstore.db_current_version_history(big_version,small_version) values('$i','$c');" && echo "scripts Success"
else
"scripts FALSE"
fi
done
else
echo "scripts FALSE"
fi
done
jenkins配置自动执行sql脚本的更多相关文章
- Spring Boot中自动执行sql脚本
说明:所有的代码基于SpringBoot 2.0.3版本 背景 在应用程序启动后,可以自动执行建库.建表等SQL脚本.下文中以要自动化执行people.sql脚本为例说明,脚本在SpringBoot工 ...
- 使用JenKins实现自动执行python脚本
1.使用Jenkins创建一个工程,工程主要配置项参照下图,其他配置项恢复默认 2.工程配置完成之后,点击[立即构建],执行完成后进入到控制台查看是否执行成功.
- Jenkins自动执行python脚本输出测试报告
前言 在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作. 借助Jenkins,我们可以结合 Git/SVN 自动拉取 ...
- windows开机自动执行bat脚本
一.以windows下备份sql数据库为例,开机自动执行.bat脚本 1.新建dump.bat文件,文件中的代码如下: set YYYYmmdd=%date:~0,4%%date:~5,2%%date ...
- flyway实现java 自动升级SQL脚本
flyway实现java 自动升级SQL脚本 为什么要用Flyway 在日常开发中,我们经常会遇到下面的问题: 自己写的SQL忘了在所有环境执行: 别人写的SQL我们不能确定是否都在所有环境执行过了: ...
- SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)
需求描述 一般在生产环境中,在投产的情况下,需要批量的来执行SQL脚本文件,来完成整个投产,如果投产文件比较多的情况下,无疑这是一个比较痛苦的过程,所以本篇通过PowerShell脚本来批量完成. 监 ...
- Inno Setup执行SQL脚本的方法
作为和NSIS并立的.两个最流行的免费Windows应用程序安装包制作工具之一,Inno在学习难度上相对要低一些,非常适合对一些简单的桌面程序打包.但对于较复杂的安装过程,或者Web应用程序来说,我个 ...
- .net(C#)在Access数据库中执行sql脚本
自己写的一个工具类,主要是业务场景的需要. 主要有两个功能: ①执行包含sql语句的字符串 ②执行包含sql语句的文件 调用方式 /// <summary> /// 执行sql语句 /// ...
- InstallShield在MySQL和Oracle中执行SQL脚本的方法InstallShield在MySQL和Oracle中执行SQL脚本的方法
简述 InstallShield已经内建了对MySQL和Oracle的支持.但是这个功能是通过ODBC实现的,它对SQL脚本的格式要求非常严格,因此已经通过官方客户端测试的脚本在IS中执行时往往就会报 ...
随机推荐
- 学生管理系统(python实现)
# 定一个列表,用来存储所有的学生信息(每个学生是一个字典) info_list = [] def print_menu(): print("------------------" ...
- 详解javascript的eventloop(二):eventloop和dom渲染
记住: JS是单线程的,他和dom渲染共用一个线程 JS执行的时候,会给dom渲染留一些时机 上一篇讲到eventloop的执行机制,但是在这个机制中的call stack执行完成后(包括第一遍的ev ...
- MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序
最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...
- 24张图攻克border-image
大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...
- Oracle with使用方法以及递归
数据准备 表结构 -- 部门表 CREATE TABLE DEPT ( dept_no VARCHAR2(5) NOT NULL, dept_name VARCHAR2(255) NOT NULL, ...
- Bugku CTF练习题---加密---聪明的小羊
Bugku CTF练习题---加密---聪明的小羊 flag:KEY{sad23jjdsa2} 解题步骤: 1.观察题目,发现其中的信息 2.经过题目判断,得知该题属于栅栏密码的一种,并且介绍中表明了 ...
- KTL 一个支持C++14编辑公式的K线技术工具平台 - 第六版,支持OpenGL,3D上帝视角俯视K线概貌。
K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...
- Linux-进程工具
1.进程树 pstree pstree 可以用来显示进程的父子关系,以树形结构显示 格式: pstree [OPTION] [ PID | USER ] 常用选项: -p 显示PID -T 不显示线程 ...
- SQL注入的几种类型
SQL注入就是: 将构造SQL语句来插入到web提交的数据之中,让其返回数据时运行自己构造的恶意SQL语句. SQL注入构造恶意SQL语句的方法有: 构造堆叠,构造闭合,构造报错,构造时间差,等等 S ...
- 利用撒旦搜索引擎查询ip个数,批量下载ip
利用撒旦搜索引擎查询ip个数,批量下载ip,使用语言python3.x 批量测试时,为了方便直接撸下ip,所以用python写了个GUI撒旦利用工具,写的不是很好,但能用,最下面有下载. from t ...