Files
dbbackup/internal/restore
Renz 98f483ae11 Fix: Database listing now works with peer authentication
Issue: Interactive cluster restore preview showed 'Cannot list databases: exit status 2'
when trying to detect existing databases. This happened because the safety check
functions always used '-h hostname' flag with psql, which breaks peer authentication.

Root cause:
- listPostgresUserDatabases() and checkPostgresDatabaseExists() always included -h flag
- For localhost peer auth, psql should connect via Unix socket (no -h flag)
- Adding -h localhost forces TCP connection which fails with peer authentication

Solution: Match the pattern used throughout the codebase:
- Only add -h flag when host is NOT localhost/127.0.0.1/empty
- For localhost, skip -h flag to use Unix socket
- Set PGPASSWORD only if password is provided

Fixed functions in internal/restore/safety.go:
- listPostgresUserDatabases()
- checkPostgresDatabaseExists()

Now interactive mode correctly shows existing databases count and list when
running as postgres user with peer authentication.
2025-11-12 08:43:16 +00:00
..