2
0

feat: upgrade process

This commit is contained in:
zhangsz
2025-02-14 18:29:44 +08:00
parent 1be2941c4a
commit 0a330752c3
2 changed files with 32 additions and 14 deletions

View File

@@ -161,14 +161,24 @@ case "$1" in
# upgrade database # upgrade database
cd ${docker_work_dir} cd ${docker_work_dir}
docker-compose up -d wfc-mysql docker-compose up -d wfc-mysql
sleep 10
if docker ps --filter "name=$CONTAINER_NAME" --format "{{.Names}}" | grep -q "$CONTAINER_NAME"; then # 检查容器健康状态
echo "Upgrade database: " timeout=30
${wfc_work_dir}/bin/wfcupgdb.sh all interval=2
else elapsed=0
echo "Contaier $CONTAINER_NAME not run, please run first..." while [ $elapsed -lt $timeout ]; do
fi health_status=$(docker inspect --format='{{.State.Health.Status}}' $CONTAINER_NAME)
;; if [ "$health_status" == "healthy" ]; then
echo "Upgrade database: "
${wfc_work_dir}/bin/wfcupgdb.sh all
exit 0
fi
sleep $interval
elapsed=$((elapsed + interval))
done
echo "Container $CONTAINER_NAME is not healthy after $timeout seconds, please check the container status."
;;
base) base)
# build docker compose # build docker compose
cd ${docker_work_dir} cd ${docker_work_dir}

View File

@@ -6,6 +6,14 @@ mysql_sql_dir=${docker_work_dir}/mysql/db
docker_sql_dir=/docker-entrypoint-initdb.d docker_sql_dir=/docker-entrypoint-initdb.d
docker_mysql_conf_d=/etc/mysql/conf.d docker_mysql_conf_d=/etc/mysql/conf.d
docker_my_conf_file=${docker_mysql_conf_d}/my.cnf docker_my_conf_file=${docker_mysql_conf_d}/my.cnf
mysql_ocker_name=wfc-mysql
# 在容器内生成 my.cnf 文件
docker exec ${mysql_ocker_name} bash -c "cat <<EOF > ${docker_my_conf_file}
[client]
user=root
password=\${MYSQL_ROOT_PASSWORD}
EOF"
case "$1" in case "$1" in
system) system)
@@ -14,8 +22,8 @@ case "$1" in
for sql in ./upgrade/${db_name}/*.sql; do for sql in ./upgrade/${db_name}/*.sql; do
if [ -f "$sql" ]; then if [ -f "$sql" ]; then
echo -n "Execute SQL script: ${sql} ... " echo -n "Execute SQL script: ${sql} ... "
# docker exec -i wfc-mysql mysql -u ${db_name} < ${sql}; # docker exec -i ${mysql_ocker_name} mysql -u ${db_name} < ${sql};
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} docker exec -i ${mysql_ocker_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
if [ $? = 0 ]; then if [ $? = 0 ]; then
echo "done" echo "done"
fi fi
@@ -30,7 +38,7 @@ case "$1" in
for sql in ./upgrade/${db_name}/*.sql; do for sql in ./upgrade/${db_name}/*.sql; do
if [ -f "$sql" ]; then if [ -f "$sql" ]; then
echo -n "Execute SQL script: ${sql} ... " echo -n "Execute SQL script: ${sql} ... "
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} docker exec -i ${mysql_ocker_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
if [ $? = 0 ]; then if [ $? = 0 ]; then
echo "done" echo "done"
fi fi
@@ -45,7 +53,7 @@ case "$1" in
for sql in ./upgrade/${db_name}/*.sql; do for sql in ./upgrade/${db_name}/*.sql; do
if [ -f "$sql" ]; then if [ -f "$sql" ]; then
echo -n "Execute SQL script: ${sql} ... " echo -n "Execute SQL script: ${sql} ... "
docker exec -i wfc-mysql mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql} docker exec -i ${mysql_ocker_name} mysql --defaults-extra-file=${docker_my_conf_file} ${db_name} < ${sql}
if [ $? = 0 ]; then if [ $? = 0 ]; then
echo "done" echo "done"
fi fi
@@ -55,13 +63,13 @@ case "$1" in
done done
;; ;;
all) all)
$0 config
$0 system $0 system
$0 user $0 user
$0 config
;; ;;
*) *)
echo "WANFi Control and Billing System Upgrade Database ..." echo "WANFi Control and Billing System Upgrade Database ..."
echo "Usage: $0 system|user|config|all" echo "Usage: $0 config|system|user|all"
exit 1 exit 1
;; ;;
esac esac