ArmorDB Logo
ArmorDB
All articles
News & TrendsAugust 23, 20267 min read

PostgreSQL 18 Upgrade Checklist for Managed Databases

A practical PostgreSQL 18 upgrade checklist covering compatibility changes, checksums, MD5 deprecation, pg_upgrade statistics, COPY behavior, and managed rollout planning.

ArmorDB Engineering

ArmorDB engineering

PostgreSQL 18UpgradesManaged PostgreSQL
On this page 8 sections

PostgreSQL 18 is not just a feature release for new projects. It changes enough upgrade assumptions that production teams should treat the move as a small operations project, even when the database is managed and the provider performs the version switch.

The immediate problem is simple: a managed upgrade hides server work, but it does not remove application compatibility, client tooling, authentication, migration rehearsal, or post-upgrade validation. The safest path is to read the release notes like an operational checklist, not like a feature announcement.

What changed that affects upgrade planning

The official PostgreSQL 18 release notes call out several changes with upgrade consequences. New clusters now enable data checksums by default, pg_upgrade can retain optimizer statistics, MD5 password authentication is deprecated, COPY FROM no longer treats . as an end-of-file marker when reading CSV files, and restore or upgrade paths can fail when schemas violate stricter constraint requirements. None of these are reasons to avoid the release. They are reasons to rehearse the exact path your production database will take.

For managed PostgreSQL, the biggest distinction is between provider-owned work and application-owned work. Your provider may handle binaries, storage, backups, and failover orchestration. You still own driver versions, connection strings, migration scripts, authentication method compatibility, client utilities such as psql, and the queries that must perform well immediately after the upgrade.

Upgrade areaPostgreSQL 18 change to checkPractical action
Cluster initializationData checksums are enabled by default for new clustersConfirm whether your migration path uses in-place upgrade, restore, or a new cluster; checksum settings must match for pg_upgrade
AuthenticationMD5 password authentication is deprecatedMove users and connection policy toward SCRAM before the upgrade window
Query planspg_upgrade can retain optimizer statisticsStill validate critical plans and know when to run targeted ANALYZE
Data loadingCSV COPY FROM no longer treats . as EOFTest import scripts and older psql copy workflows against PostgreSQL 18
Constraints and schemaSome restore and upgrade paths are stricter about invalid schema statesRun schema checks in staging and fix invalid objects before the window

Start with the exact migration path

PostgreSQL major upgrades are not one operation. The release notes describe dump and restore, pg_upgrade, and logical replication as valid paths from previous releases. A managed provider may expose those as an upgrade button, a blue-green migration, or a support-run maintenance task. The risk profile changes with the path.

An in-place pg_upgrade style path is usually attractive because it avoids rewriting all table data, but it has prerequisites. PostgreSQL documentation notes that checksum settings must match between old and new clusters. That matters more in PostgreSQL 18 because new clusters default to checksums. If you are upgrading an older cluster without checksums, ask whether the provider is upgrading the existing cluster, creating a replacement cluster with matching settings, or using dump/restore or logical replication instead.

Dump and restore gives a clean rebuild, but it tests every object definition. That is useful, because it exposes bad schema states before production, but it can also turn an ignored legacy issue into a blocking migration error. Logical replication can reduce downtime for large databases, yet it needs careful handling for sequences, schema drift, extensions, and application cutover.

Treat authentication as a pre-upgrade task

PostgreSQL 18 deprecates MD5 password authentication, and the password authentication documentation describes SCRAM-SHA-256 as the more secure password method. In practical terms, this is not just a server setting. It touches pg_hba.conf policy, stored password hashes, drivers, connection pools, and any old maintenance scripts that connect during deploys.

The cleanest upgrade plan rotates application users to SCRAM-compatible credentials before the major version change. That gives you time to find old clients without mixing an authentication migration into the database upgrade window. If PgBouncer sits between the app and database, include it in the test because pooling can hide which client library is actually responsible for a failed authentication handshake.

Rehearse imports, maintenance scripts, and client versions

The PostgreSQL 18 release notes include a subtle but important COPY change: COPY FROM no longer treats . as an end-of-file marker when reading CSV files, while psql still treats . as EOF when reading CSV from standard input. The notes also warn that older psql clients connecting to PostgreSQL 18 servers might experience copy problems.

This is the sort of change that does not show up in normal web traffic. It shows up in data import jobs, analytics refreshes, one-off support scripts, and seed data tooling. A good rehearsal runs the same import scripts you use in production, with the same client image or CI runner. If the database is managed but your deployment container still installs an old PostgreSQL client package, the managed upgrade will not save that script.

Validate performance after the version switch

PostgreSQL 18 reduces one common upgrade pain by allowing pg_upgrade to retain optimizer statistics. That can make the first hours after an upgrade less surprising, because the planner is not starting from an empty statistics state. It is still not a substitute for validation.

Before the upgrade, capture a short list of business-critical queries: login path, dashboard load, billing job, queue claim, report generation, and any query known to be sensitive to indexes or partition pruning. After the upgrade, compare latency and plans in staging first, then watch production with real traffic. If a plan changes for the worse, a targeted ANALYZE, index review, or query adjustment is better than a broad panic vacuum.

For teams using ArmorDB or another managed platform, this is where provider observability and application traces should meet. The database can show slow statements and wait behavior; the application can show which user-visible path became slower. Neither view is enough alone.

A practical managed PostgreSQL 18 rollout

A sensible rollout starts by reading the release notes and marking every item that touches your workload: authentication, extensions, imports, constraints, logical replication, partitioning, and application SQL. Next, create a staging database using the same upgrade path that production will use, not merely a fresh PostgreSQL 18 database. Fresh clusters are useful for feature testing, but they do not prove that your existing schema and data upgrade cleanly.

Then test the edges that are easy to forget: backup restore, migration rollback, data imports, admin scripts, connection pool behavior, and the oldest application version that may still run during a deploy. If you operate a SaaS product with rolling deploys, compatibility must hold while old and new app versions overlap. Major database upgrades are safest when application releases before and after the window are deliberately boring.

Finally, schedule the production change with a written validation plan. The plan should say which endpoints to test, which queries to inspect, which replication or backup indicators must be green, and who decides whether to continue or roll back. If you are still choosing a platform for this kind of work, our guide to managed PostgreSQL versus self-hosted PostgreSQL explains which operational responsibilities move to the provider and which remain yours. ArmorDB pricing and plan details are available on the pricing page when you want a simpler managed path.

Takeaway

PostgreSQL 18 is a worthwhile upgrade, but the safe managed-database posture is not "click upgrade and hope." Decide the migration path, remove MD5 dependence, test client tooling, rehearse imports, validate schema restore behavior, and compare critical query performance before and after the switch. The provider can make the server upgrade smaller. Your checklist makes the application upgrade safer.

Sources and further reading

Written by ArmorDB Engineering

Practical notes on PostgreSQL operations, security, and infrastructure decisions for teams building production applications.

Updated Aug 23, 2026