10 released 5 October 2017, latest 10.23.
PostgreSQL 10 reached end of life on 10 November 2022.
What changed
PostgreSQL 10 added native logical replication through publications and subscriptions, building on earlier logical decoding but providing a built-in way to replicate selected table changes to another PostgreSQL server. It introduced declarative range and list partitioning, replacing much of the inheritance, check-constraint, and trigger-based setup previously required for partitioned tables. The cycle also added SQL-standard identity columns, SCRAM-SHA-256 password authentication support, quorum synchronous replication, WAL logging for hash indexes, and further parallel-query capabilities. These were important foundations, but several features introduced in this cycle were expanded substantially in later PostgreSQL releases.
What staying costs
PostgreSQL 10 has reached end of life, so it no longer receives upstream security fixes, bug fixes, or compatibility corrections. Running it leaves the team responsible for accepting or mitigating defects that upstream will not address, including issues exposed by newer operating systems, libraries, drivers, backup tools, and extensions. Its initial implementations of declarative partitioning and logical replication also lack many later operational and functional improvements. Native logical replication in this line does not replicate schema changes or sequence state automatically, so it requires explicit handling during migration and ongoing operations. Staying on the cycle can therefore increase both security exposure and the effort required to keep surrounding infrastructure supported.
What to do
Choose a currently supported PostgreSQL target release after checking application, extension, driver, operating-system, and managed-service compatibility. Inventory databases, extensions, authentication methods, replication topology, partitioned tables, custom data types, and maintenance jobs before selecting the upgrade method. Rehearse the upgrade on production-like copies and validate application behavior, query plans, backups, restores, failover procedures, and monitoring. For a planned outage, use pg_upgrade where its prerequisites and the acceptable downtime fit the environment; otherwise, use dump and restore or a logical-replication migration. If using logical replication from PostgreSQL 10, create and migrate schema separately, plan how sequence values will be synchronized, validate data before cutover, and account for objects and changes that native logical replication does not carry automatically. Keep a tested rollback plan until the new primary has been validated under production workload.
We can tell you what moving off PostgreSQL 10 involves.
What it takes to move off PostgreSQL 10 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
