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

  

相关文章:

  • 2022-12-23
  • 2022-01-11
  • 2021-07-22
  • 2023-03-31
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
猜你喜欢
  • 2021-06-20
  • 2021-12-07
  • 2021-08-09
  • 2021-12-06
  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
相关资源
相似解决方案