mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-07 03:15:56 +00:00
Before the server starts, the role finds the cluster in postgres_data, whether it sits in the volume root, in pgdata/ or in <major>/docker, and upgrades an older one major by major into the PGDATA of the pinned image: - builds an upgrade image from the pinned PostgreSQL image with the binaries of every older major on the path and the extension packages the consumers in the host's groups declare - keeps a reflink copy of the whole volume next to it, or stops until services.postgres.upgrade.backup_confirmed is true on a filesystem without reflinks - runs pg_upgrade --check, then --link, with the old cluster's superuser, encoding, locale and checksum setting, and carries pg_hba.conf, pg_ident.conf and postgresql.auto.conf over - after the start, applies the extension updates pg_upgrade wrote, collects statistics, reports databases whose collation version changed and removes the retired clusters, never the reflink copy A cluster newer than the pin, a pinned major outside PGDATA, or a retired cluster without a newer one stops the deploy. Swarm mode only detects and stops on an older cluster. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>