PostgreSQL EOL'et na vijf jaar. Versie 12 kreeg in november 2024 zijn laatste update, 13 in november 2025. Wie nog op die versies draait heeft een upgrade-traject voor zich. Drie technieken, elk met andere downtime-impact.

pg_upgrade: snel maar lokaal

pg_upgrade upgrade in-place naar een nieuwe binaire versie. Met --link-modus is de upgrade binnen minuten klaar voor TB-databases (link-modus deelt files in plaats van te kopieren). Downtime: 5 tot 30 minuten. Geen rollback zonder restore. Voor planbare downtime de juiste keuze.

pg_dump en pg_restore: schoon maar traag

Dump-en-restore via pg_dump | pg_restore garandeert een schone target-database, maar is voor TB-volumes uren tot een dag. Toepasselijk bij major upgrades over meerdere versies tegelijk (van 11 naar 17), waar pg_upgrade niet ondersteund is, of bij character-encoding-wijzigingen.

Logical replication: zero-downtime

Sinds PostgreSQL 10 is logical replication standaard. Een nieuwe node opzetten op de target-versie, replicatie van bron naar target, dan applicaties ompointen na catch-up. Downtime: seconden voor de cutover. Vereist meer planning en ondersteunt niet alle DDL-operaties.

Extension-compatibiliteit

PostGIS, TimescaleDB, pg_partman en andere extensions hebben eigen versie-compatibiliteit. Bij elke major upgrade: extension-versies controleren in de target-versie, ALTER EXTENSION ... UPDATE in de juiste volgorde, en regressie-testen op extension-functionaliteit.

Statistics en VACUUM na upgrade

Na pg_upgrade moeten statistics opnieuw verzameld worden (ANALYZE op de hele database) voordat productie-load eropgaat. Anders draait u op default-statistics en zijn plans suboptimaal. Voor grote databases is dat enkele uren werk dat u in het downtime-budget meeneemt.

Verwant: Freelance PostgreSQL DBA inhuren, VACUUM tuning.