From fc19fb0c4bc0663dc054d603d86b013fff82399f Mon Sep 17 00:00:00 2001 From: Rei Date: Wed, 30 Sep 2026 16:36:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E6=9E=84=E5=BB=BA=E4=BE=9D=E8=B5=96=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/update-and-restart.sh | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/scripts/update-and-restart.sh b/scripts/update-and-restart.sh index a354863..641f102 100755 --- a/scripts/update-and-restart.sh +++ b/scripts/update-and-restart.sh @@ -34,25 +34,27 @@ if ! git diff --quiet || ! git diff --cached --quiet; then fi log '备份 MySQL 数据库' -set -a -# shellcheck disable=SC1090 -source "$CMS_ENV_FILE" -set +a -: "${DB_HOST:?DB_HOST 未配置}" -: "${DB_PORT:?DB_PORT 未配置}" -: "${DB_USER:?DB_USER 未配置}" -: "${DB_PASSWORD:?DB_PASSWORD 未配置}" -: "${DB_NAME:?DB_NAME 未配置}" install -d -m 700 "$BACKUP_DIR" umask 077 -BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_$(date '+%Y%m%d_%H%M%S').sql.gz" -MYSQL_PWD="$DB_PASSWORD" mysqldump \ - --single-transaction \ - --quick \ - --host="$DB_HOST" \ - --port="$DB_PORT" \ - --user="$DB_USER" \ - "$DB_NAME" | gzip -c > "$BACKUP_FILE" +BACKUP_FILE="$BACKUP_DIR/ameiba_cms_$(date '+%Y%m%d_%H%M%S').sql.gz" +( + set -a + # shellcheck disable=SC1090 + source "$CMS_ENV_FILE" + set +a + : "${DB_HOST:?DB_HOST 未配置}" + : "${DB_PORT:?DB_PORT 未配置}" + : "${DB_USER:?DB_USER 未配置}" + : "${DB_PASSWORD:?DB_PASSWORD 未配置}" + : "${DB_NAME:?DB_NAME 未配置}" + MYSQL_PWD="$DB_PASSWORD" mysqldump \ + --single-transaction \ + --quick \ + --host="$DB_HOST" \ + --port="$DB_PORT" \ + --user="$DB_USER" \ + "$DB_NAME" | gzip -c > "$BACKUP_FILE" +) [[ -s "$BACKUP_FILE" ]] || fail '数据库备份文件为空' log "数据库已备份:$BACKUP_FILE" @@ -62,7 +64,7 @@ git fetch origin "$BRANCH" git pull --ff-only origin "$BRANCH" log '安装前台依赖并构建' -npm ci +npm ci --include=dev npm run build log '安装 CMS 后端生产依赖' @@ -74,7 +76,7 @@ log '安装 CMS 后端生产依赖' log '构建 CMS 管理后台' ( cd "$PROJECT_DIR/cms/admin" - npm ci + npm ci --include=dev npm run build )