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 # 清理舊備份