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

  

转载于:https://www.cnblogs.com/The-day-of-the-wind/p/10113811.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动脚本断言 9,判断页面元素是否存在 10,js在web自动的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值