数据库备份逻辑容错机制优化
This commit is contained in:
@@ -400,6 +400,46 @@ do_deploy() {
|
||||
mkdir -p "$DEPLOY_DIR"
|
||||
mkdir -p "$DATA_DIR"
|
||||
|
||||
# ----- 检测并迁移旧版本文件(从根目录迁移到 data/)-----
|
||||
print_step "检测旧版本文件..."
|
||||
|
||||
OLD_DB="${DEPLOY_DIR}/frpc-console.db"
|
||||
OLD_TOML="${DEPLOY_DIR}/frpc.toml"
|
||||
OLD_LOG="${DEPLOY_DIR}/frpc.log"
|
||||
OLD_PID="${DEPLOY_DIR}/frpc.pid"
|
||||
OLD_VERSION="${DEPLOY_DIR}/version.ini"
|
||||
NEW_DB="${DATA_DIR}/frpc-console.db"
|
||||
|
||||
# 如果根目录有旧数据库文件,但 data/ 目录没有,执行迁移
|
||||
if [ -f "$OLD_DB" ] && [ ! -f "$NEW_DB" ]; then
|
||||
print_warn "检测到旧版本数据库文件在根目录,将迁移到 data/ 子目录"
|
||||
|
||||
# 备份旧文件
|
||||
BACKUP_OLD_DIR="${DEPLOY_DIR}/.old_backup_$(date +%Y%m%d_%H%M%S)"
|
||||
mkdir -p "$BACKUP_OLD_DIR"
|
||||
|
||||
for file in frpc-console.db frpc.toml frpc.log frpc.pid version.ini; do
|
||||
if [ -f "${DEPLOY_DIR}/${file}" ]; then
|
||||
cp "${DEPLOY_DIR}/${file}" "${BACKUP_OLD_DIR}/" 2>/dev/null || true
|
||||
print_info " 已备份: ${file}"
|
||||
fi
|
||||
done
|
||||
|
||||
# 复制文件到 data/ 目录
|
||||
for file in frpc-console.db frpc.toml frpc.log frpc.pid version.ini; do
|
||||
if [ -f "${DEPLOY_DIR}/${file}" ]; then
|
||||
cp "${DEPLOY_DIR}/${file}" "${DATA_DIR}/" 2>/dev/null || true
|
||||
print_info " 已迁移: ${file} → data/"
|
||||
fi
|
||||
done
|
||||
|
||||
print_success "旧文件已迁移到 data/ 目录"
|
||||
print_info "旧文件备份位置: ${BACKUP_OLD_DIR}"
|
||||
print_info "确认服务正常后,可手动删除备份目录"
|
||||
else
|
||||
print_info "未检测到需要迁移的旧文件"
|
||||
fi
|
||||
|
||||
# ----- 构建 Docker 镜像 -----
|
||||
print_step "构建 Docker 镜像..."
|
||||
docker build --no-cache \
|
||||
|
||||
Reference in New Issue
Block a user