From dde9a7602943b51fe2844465bfa5359243960b59 Mon Sep 17 00:00:00 2001 From: xuqinmin12 Date: Fri, 12 Jun 2026 19:14:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20XUQM=5FCLEAN=5FDAT?= =?UTF-8?q?A=3D1=20=E5=9C=A8=E6=96=B0=E5=BB=BA=E9=83=A8=E7=BD=B2=E6=97=B6?= =?UTF-8?q?=E6=B8=85=E9=99=A4=E6=97=A7=E6=95=B0=E6=8D=AE=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/deploy.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 016e399..11a3597 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -118,6 +118,7 @@ printf ' 2) 迁移租户 — 从公有平台导入现有租户数据(需迁 # XUQM_EXTERNAL_URL 外部访问地址(如 https://win.xuqinmin.com) # XUQM_NGINX_MODE 1=直接80 / 2=本地11223(默认1) # XUQM_MIGRATE_KEY 迁移密钥(migrate 模式需要) +# XUQM_CLEAN_DATA 1=新建部署时清除已有 MySQL/Redis 数据目录(谨慎使用) _NONINTERACTIVE="${XUQM_NONINTERACTIVE:-0}" DEPLOY_MODE="" @@ -569,6 +570,24 @@ printf '%s' "$REGISTRY_PASSWORD" | \ # --------------------------------------------------------------------------- step "启动基础设施容器(MySQL / Redis)" +# XUQM_CLEAN_DATA=1:清除旧数据目录(仅 new 模式下生效) +if [ "${XUQM_CLEAN_DATA:-0}" = "1" ] && [ "$DEPLOY_MODE" = "new" ]; then + warn "XUQM_CLEAN_DATA=1:清除旧 MySQL/Redis 数据目录,确保全新部署..." + docker compose \ + --env-file "$ROOT_DIR/.env" \ + -f "$ROOT_DIR/docker-compose.yml" \ + -f "$ROOT_DIR/docker-compose.infra.yml" \ + --profile infra-mysql --profile infra-redis \ + down 2>/dev/null || true + rm -rf "$ROOT_DIR/data/mysql" "$ROOT_DIR/data/redis" 2>/dev/null || \ + { [ -n "${XUQM_SUDO_PASS:-}" ] && printf '%s\n' "$XUQM_SUDO_PASS" | \ + sudo -S rm -rf "$ROOT_DIR/data/mysql" "$ROOT_DIR/data/redis" 2>/dev/null; } || true + mkdir -p "$ROOT_DIR/data/mysql" "$ROOT_DIR/data/redis" 2>/dev/null || \ + { [ -n "${XUQM_SUDO_PASS:-}" ] && printf '%s\n' "$XUQM_SUDO_PASS" | \ + sudo -S mkdir -p "$ROOT_DIR/data/mysql" "$ROOT_DIR/data/redis" 2>/dev/null; } || true + ok "旧数据已清除" +fi + docker compose \ --env-file "$ROOT_DIR/.env" \ -f "$ROOT_DIR/docker-compose.yml" \