diff --git a/ops/restore-tests/immich-restore-test.sh b/ops/restore-tests/immich-restore-test.sh index 606b445..3fbf0e7 100755 --- a/ops/restore-tests/immich-restore-test.sh +++ b/ops/restore-tests/immich-restore-test.sh @@ -186,19 +186,28 @@ if [ "$body_check" != "ok" ]; then exit 1 fi -# Asset-Count aus DB. Wenn die Spalte nicht existiert (Schema-Drift), -# wird das im Report sichtbar gemacht statt das Skript zu killen. -asset_count="$(docker exec restoretest-immich-postgres \ - psql -U immich -d immich -tAc "select count(*) from assets;" 2>/dev/null \ - | tr -d '[:space:]' || true)" +# Asset-Count aus DB. Immich v2 nutzt Singular-Tabellen (`asset`, +# `"user"`); ältere Schema-Staende werden tolerant als Fallback versucht. +query_count() { + local sql="$1" + docker exec restoretest-immich-postgres \ + psql -U immich -d immich -tAc "$sql" 2>/dev/null \ + | tr -d '[:space:]' || true +} + +asset_count="$(query_count 'select count(*) from asset;')" +if [ -z "$asset_count" ]; then + asset_count="$(query_count 'select count(*) from assets;')" +fi if [ -z "$asset_count" ]; then asset_count="n/a" fi # User-Count als zusaetzlicher DB-Sanity-Check -user_count="$(docker exec restoretest-immich-postgres \ - psql -U immich -d immich -tAc "select count(*) from users;" 2>/dev/null \ - | tr -d '[:space:]' || true)" +user_count="$(query_count 'select count(*) from "user";')" +if [ -z "$user_count" ]; then + user_count="$(query_count 'select count(*) from users;')" +fi if [ -z "$user_count" ]; then user_count="n/a" fi