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