1
0

maintenance: upgrade to postgres:17.7-trixie in docs and for Testcontainers (#222)

Co-authored-by: Michael Hoennig <michael@hoennig.de>
Reviewed-on: http://dev.hostsharing.net/hostsharing/hs.hsadmin.ng/pulls/222
Reviewed-by: Stefan Begerad <stefan.begerad@hostsharing.net>
This commit is contained in:
Michael Hoennig
2026-05-12 10:03:20 +02:00
parent 62307a0764
commit c2ddf90f8c
10 changed files with 61 additions and 26 deletions
@@ -0,0 +1,40 @@
# PR#222: Maintenance Upgrade to PostgreSQL 17.7 Trixie
## The Problem
Even though I had tested the application with PostgreSQL `17.7-trixie` a while ago,
the project still used PostgreSQL `15.5-bookworm` in the local Docker setup, in Testcontainers-based test
and in documentation.
After switching the tests to PostgreSQL `17.7-trixie`, the migration tests which generate reference SQL dumps failed on developer machines with an older host `pg_dump`.
PostgreSQL requires `pg_dump` to be at least as new as the database server.
Therefore, a host-side `pg_dump` 16 could not dump a PostgreSQL 17 Testcontainer database.
The failing error looked like this:
```text
pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 17.7 (Debian 17.7-3.pgdg13+1); pg_dump version: 16.13 (Ubuntu 16.13-0ubuntu0.24.04.1)
```
## The Solution
The PostgreSQL Docker image references were upgraded from `15.5-bookworm` to `17.7-trixie`.
This includes the custom PostgreSQL image, the Docker Compose setup, developer documentation, and the Testcontainers JDBC URLs used by integration and migration tests.
The SQL dump helper used by the migration tests was changed to run `pg_dump` inside the PostgreSQL Testcontainer.
This ensures that `pg_dump` always has the same major version as the PostgreSQL server used by the test.
## Additional Changes
The RBAC performance analysis documentation was updated to use the new PostgreSQL image tag in its examples.
## Verification
The Liquibase compatibility test was run successfully with the required PostgreSQL role environment variables:
```sh
env HSADMINNG_POSTGRES_ADMIN_USERNAME=admin \
HSADMINNG_POSTGRES_RESTRICTED_USERNAME=restricted \
./gradlew test --tests net.hostsharing.hsadminng.hs.migration.LiquibaseCompatibilityIntegrationTest
```