From 92195b83ecd6b90dbe9529eee29504a346aadd5f Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 18 May 2026 14:13:09 +0200 Subject: [PATCH] fix(backup): moodlit + herbatrium + wordeck Postgres-Container MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3 Container fielen heimlich aus dem täglichen pg_dump-Backup raus: 1. moodlit-postgres, herbatrium-postgres — neu seit 2026-05-18 bzw. 2026-05-17, fehlten im db_user_for_container-case (defaultete auf 'postgres', der in diesen Containern nicht existiert). 2. wordeck-postgres — Cards-Rebrand 2026-05-17 hat den Container umbenannt, der case zeigte aber noch auf 'cards-postgres' → kein Match → default 'postgres' → role nicht da. Zusätzlich: psql -U versuchte ohne -d zur DB '' zu connecten (Default-Verhalten), das gibt's bei den Greenfield-Apps nicht (DBs heißen mana_moodlit / mana_herbatrium / wordeck). Mit expliziter `-d template1` (existiert in jeder Postgres-Instanz) funktioniert die Liste-Datenbanken-Query universell. Verifiziert per manuellem Run am 2026-05-18: OK: moodlit-postgres/mana_moodlit (1.0K) OK: wordeck-postgres/wordeck (575K) OK: herbatrium-postgres/mana_herbatrium (2.8K) Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/mac-mini/backup-databases.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/mac-mini/backup-databases.sh b/scripts/mac-mini/backup-databases.sh index fee7b201e..a3f6c69dd 100755 --- a/scripts/mac-mini/backup-databases.sh +++ b/scripts/mac-mini/backup-databases.sh @@ -66,13 +66,15 @@ send_notification() { # läuft als `postgres`-Superuser. db_user_for_container() { case "$1" in - cards-postgres) echo "cards" ;; + wordeck-postgres) echo "wordeck" ;; manaspur-postgres) echo "manaspur" ;; nutriphi-postgres) echo "nutriphi" ;; zitare-postgres) echo "zitare" ;; chorportal-prod-postgres) echo "chorportal" ;; seepuls-postgres) echo "seepuls" ;; manameme-postgres) echo "manameme" ;; + moodlit-postgres) echo "moodlit" ;; + herbatrium-postgres) echo "herbatrium" ;; pageta-postgres) echo "pageta" ;; mana-infra-postgres) echo "postgres" ;; *) echo "postgres" ;; @@ -106,7 +108,7 @@ for CONTAINER in $CONTAINERS; do log "--- Container: $CONTAINER (user: $USER) ---" # DB-Liste in diesem Container - if ! DB_LIST=$(docker exec "$CONTAINER" psql -U "$USER" -t -c "SELECT datname FROM pg_database WHERE datistemplate = false AND datname != 'postgres';" 2>/dev/null | tr -d ' ' | grep -v "^$"); then + if ! DB_LIST=$(docker exec "$CONTAINER" psql -U "$USER" -d template1 -t -c "SELECT datname FROM pg_database WHERE datistemplate = false AND datname != 'postgres';" 2>/dev/null | tr -d ' ' | grep -v "^$"); then log " FAILED to list databases in $CONTAINER (user $USER) — skipping" FAILED_DBS="$FAILED_DBS ${CONTAINER}:list" continue