Prague PostgreSQL Dev Day 2026

backups & replication
Talk

Switching Me Softly: Zero-downtime Major PostrgreSQL Upgrades at Fresha

Anton Borisov

on  Wed, 10:15 ! Livein  155for  50min

Upgrading PostgreSQL in production is rarely about tools, it’s about timing, trust, and everything that can break in between. At Fresha we had quute a few of Postgres 12 databases, streaming changes through Debezium into Kafka, serving live traffic around the clock. With end-of-life approaching, “just run pg_upgrade” wasn’t an option.

We built a blue-green upgrade process based on logical replication, sequence offsets, connector handover, and PgBouncer choreography: a way to move clusters forward without downtime or broken streams. This talk shares how we made it repeatable: YAML configs, dry-run rehearsals, reversible scripts, and a few hard lessons learned along the way.

When the switch finally happened, no one noticed. That’s how you know it worked.

This talk expands on Fresha’s Switching Me Softly framework: a production-tested zero-downtime upgrade path from PostgreSQL 12 → 17.

It covers:

We upgraded dozens of databases, including multi-terabyte clusters, without a second of downtime. The session focuses on real engineering trade-offs what worked, what didn’t, and how to make major PostgreSQL upgrades safe, reversible, and boring.

 Overview  Program