| I did not use a script (my environment is bare metal running ubuntu 24). I read these and then wrote my own scripts that were tailored to my environment. https://pganalyze.com/blog/5mins-postgres-zero-downtime-upgr... https://www.pgedge.com/blog/always-online-or-bust-zero-downt... https://knock.app/blog/zero-downtime-postgres-upgrades Basically - Created a new cluster on new machines - Started logically replicating - Waited for that to complete and then left it there replicating for a while until I was comfortable with the setup - We were already using haproxy and pgbouncer - Then I did a cut over to the new setup - Everything looked good so after a while I tore down the old cluster - This was for a database 600gb-1tb in size - The client application was not doing anything overly fancy which meant there was very little to change going from 12 to 17 - Additionally I did all of the above in a staging environment first to make sure it would work as expected Best of luck. |
Going to have some more figuring out what's up with spilo - turns out that running that outside of k8s is rare and not much documented. But it's still patroni so this is very helpful.