From ec4ebaf3102aab2df317e3529f5805e8968ccb68 Mon Sep 17 00:00:00 2001 From: OG T Date: Thu, 9 Apr 2026 09:57:05 +0800 Subject: [PATCH] =?UTF-8?q?fix(ops):=20pg-backup=20momo=5Fanalytics=20?= =?UTF-8?q?=E6=94=B9=E7=94=A8=20docker=20exec=20(=E7=84=A1=E5=B0=8D?= =?UTF-8?q?=E5=A4=96=20port)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit momo-db 容器無 port binding,TCP 127.0.0.1:5432 連到 host PG 非容器。 改用 docker exec momo-db pg_dump,實際備份 91M。 Co-Authored-By: Claude Sonnet 4.6 --- scripts/ops/pg-backup.sh | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/scripts/ops/pg-backup.sh b/scripts/ops/pg-backup.sh index 2fab6d6f..c06f1ba3 100644 --- a/scripts/ops/pg-backup.sh +++ b/scripts/ops/pg-backup.sh @@ -75,14 +75,18 @@ main() { # awoooi_prod (host PostgreSQL, TCP) results+=("$(backup_db "awoooi_prod" "127.0.0.1" "awoooi" "awoooi_prod_2026" "awoooi_prod")") - # momo_analytics (momo-db 容器,透過 host TCP) - local momo_pass - momo_pass=$(docker inspect momo-db --format '{{range .Config.Env}}{{println .}}{{end}}' 2>/dev/null | grep POSTGRES_PASSWORD | cut -d= -f2) - if [[ -n "$momo_pass" ]]; then - results+=("$(backup_db "momo_analytics" "127.0.0.1" "momo" "$momo_pass" "momo_analytics")") + # momo_analytics (momo-db 容器,無對外 port,用 docker exec 直接 dump) + local outfile_momo="${BACKUP_DIR}/momo_analytics_${TIMESTAMP}.sql.gz" + log "開始備份 momo_analytics (docker exec) → ${outfile_momo}" + if docker exec momo-db pg_dump -U momo momo_analytics 2>/dev/null | gzip > "$outfile_momo"; then + local size_momo + size_momo=$(du -sh "$outfile_momo" | cut -f1) + log "✅ momo_analytics 備份完成 (${size_momo})" + results+=("success:momo_analytics:${size_momo}") else - log "⚠️ momo-db 密碼未取得,跳過 momo_analytics" - results+=("skipped:momo_analytics") + log "❌ momo_analytics 備份失敗" + rm -f "$outfile_momo" + results+=("failed:momo_analytics") fi # 清理舊備份