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中执行时往往就会报 ...
随机推荐
- Azure DevOps (十) 通过流水线完成Docker镜像的部署
上一篇文章中,我们通过azure的流水线完成了镜像推送到镜像仓库中去,本篇文章我们继续开始完成下一步,通过流水线把镜像从仓库拉取到任意一台公网的服务器上去, 完成镜像部署的闭环. 首先我们需要先准备一 ...
- 论文阅读 DynGEM: Deep Embedding Method for Dynamic Graphs
2 DynGEM: Deep Embedding Method for Dynamic Graphs link:https://arxiv.org/abs/1805.11273v1 Abstract ...
- [AcWIng 799] 最长连续不重复子序列
点击查看代码 #include<iostream> using namespace std; const int N = 1e5 + 10; int a[N], s[N]; int mai ...
- 网络协议之:Domain name service DNS详解
目录 简介 DNS的功能 DNS的组成 域名空间Domain name space Name servers DNS的工作流程 DNS资源记录 DNS消息的结构 总结 简介 现在是互联网的世界,大家从 ...
- CentOS 8迁移Rocky Linux 8手记
前言 由于CentOS 8的支持已经到期了,.NET 6也不支持了,然后也无法升级,导致使用起来已经非常不便,无奈只有迁移服务器这个选项了. 选择发行版本一直是一个比较头疼的问题,首先我不是专门运维的 ...
- 5.文件共享总结中篇-Linux服务器文件共享
今天我们来讨论Linux系统之间的文件共享,包含:SCP.FTP.rz / sz.wget 一.SCP 其实我在写SSH协议常见问题排错章节中已介绍其SCP用法. 现我把SCP常用语法格式,给大家说下 ...
- .NET ORM 仓储层必备的功能介绍之 FreeSql Repository 实现篇
写在开头 2018年11月的某一天,头脑发热开启了 FreeSql 开源项目之旅,时间一晃已经四年多,当初从舒服区走向一个巨大的坑,回头一看后背一凉.四年时间从无到有,经历了数不清的日夜奋战(有人问我 ...
- 1903021121-刘明伟-java第七周作业-客户类测试
项目 内容 课程班级博客链接 19信计班(本) 作业要求链接 作业要求链接 博客名称 1903021121-刘明伟-java第七周作业-客户类测试 要求 每道题要有题目,代码,截图 第一部分: 创建客 ...
- Vue组件之间通信
vue组件传值有以下几种情况: 父组件向子组件传值.子组件向父组件传值.兄弟组件之间传值等 一.父组件向子组件传值: 传值方式: props <father> // 动态传递值 <s ...
- 精彩分享 | 欢乐游戏 Istio 云原生服务网格三年实践思考
作者 吴连火,腾讯游戏专家开发工程师,负责欢乐游戏大规模分布式服务器架构.有十余年微服务架构经验,擅长分布式系统领域,有丰富的高性能高可用实践经验,目前正带领团队完成云原生技术栈的全面转型. 导语 欢 ...