=== 0. find the live docmost 16 datadir, and PROVE it is 16 before touching anything mounts of docmost-postgres: volume docmost_docmost_postgres_data /var/lib/docker/volumes/docmost_docmost_postgres_data/_data /var/lib/postgresql/data volume: docmost_docmost_postgres_data PG_VERSION of the SOURCE: '16' === 1. copy it, and PROVE the copy is 16 too copied PG_VERSION of the COPY: '16' size of the copy: 49.0M === 2. THE MEASUREMENT: postgres:17-alpine on that 16 datadir — the household's exact case container: running=false exit=1 restarts=0 --- POSTGRESQL 17's OWN WORDS, VERBATIM: PostgreSQL Database directory appears to contain a database; Skipping initialization 2026-09-21 22:11:32.601 CEST [1] FATAL: database files are incompatible with server 2026-09-21 22:11:32.601 CEST [1] DETAIL: The data directory was initialized by PostgreSQL version 16, which is not compatible with this version 17.11. --- the copy's PG_VERSION AFTER 17 refused it (must still be 16 — nothing was migrated): 16 === 3. POSITIVE CONTROL: the same copy under postgres:16-alpine must start AND hold the data container: running=true exit=0 2026-09-21 22:11:43.497 CEST [33] LOG: checkpoint starting: end-of-recovery immediate wait 2026-09-21 22:11:43.583 CEST [33] LOG: checkpoint complete: wrote 600 buffers (3.7%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.014 s, sync=0.061 s, total=0.089 s; sync files=409, longest=0.025 s, average=0.001 s; distance=2838 kB, estimate=2838 kB; lsn=0/1BEB798, redo lsn=0/1BEB798 2026-09-21 22:11:43.592 CEST [1] LOG: database system is ready to accept connections --- the DATA, asked of the engine itself: tables in the public schema: 48 === 4. teardown, BY NAME removed: DRILL-pg17-refuse, DRILL-pg16-ok, volume DRILL-pg16-copy