Files
yml2213 d4ba9e7a56 全局重命名:kefu_sys / kefu-sys 改为 kefu_cloud / kefu-cloud
- Go module 与全部 import 路径
- 数据库默认库名、Docker 服务/卷命名与部署文档
2026-07-15 15:23:10 +08:00

33 lines
835 B
Bash
Executable File

#!/usr/bin/env bash
# 备份生产 Postgres 数据
# 用法:./deploy/scripts/backup-db.sh [输出目录]
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
cd "$ROOT_DIR"
ENV_FILE="deploy/.env.prod"
OUT_DIR="${1:-./backups}"
COMPOSE_FILE="docker-compose.prod.yml"
if [[ ! -f "$ENV_FILE" ]]; then
echo "缺少 $ENV_FILE" >&2
exit 1
fi
# shellcheck disable=SC1090
set -a
source <(sed 's/\r$//' "$ENV_FILE" | grep -v '^\s*#' | grep -v '^\s*$' || true)
set +a
mkdir -p "$OUT_DIR"
STAMP="$(date +%Y%m%d_%H%M%S)"
FILE="${OUT_DIR}/kefu_cloud_pg_${STAMP}.sql.gz"
echo "备份到 $FILE …"
docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" exec -T postgres \
pg_dump -U "${DB_USER:-kefu}" "${DB_NAME:-kefu_cloud}" | gzip > "$FILE"
echo "完成: $FILE ($(du -h "$FILE" | awk '{print $1}'))"