Major version upgrades are an important part of keeping PostgreSQL environments current with the latest features, security updates, and performance improvements. But for production workloads, the hardest part is often not the upgrade itself - it is knowing whether the server is ready before the upgrade window begins.
Today, we’re announcing the Public Preview of Pre-Upgrade Validation Checks for Azure Database for PostgreSQL. This new capability lets you validate upgrade readiness before starting the actual major version upgrade, helping you identify and resolve blockers early.
With Pre-Upgrade Validation Checks, you can run upgrade checks independently, review actionable results, fix issues, and re-run validation until your server is ready. This shifts upgrade troubleshooting from the upgrade window to a proactive pre-flight step.
Why this matters
Azure Database for PostgreSQL flexible server already supports in-place major version upgrades using PostgreSQL pg_upgrade. The service preserves the server name and connection settings, runs upgrade prechecks, takes an implicit backup when checks pass, and then performs the engine upgrade.
Pre-Upgrade Validation Checks extend this model by decoupling validation from upgrade execution.
Instead of: Upgrade → Discover issue → Troubleshoot → Retry
You can now follow: Validate → Fix → Re-Validate → Upgrade
This helps reduce failed upgrade attempts, improves planning, and gives teams more confidence before entering a production change window.
What Pre-Upgrade Validation Checks validate
Pre-Upgrade Validation Checks evaluate both Azure-specific upgrade requirements and PostgreSQL compatibility checks, including pg_upgrade --check.
At a high level, the validation covers:
- Configuration and platform prerequisites, such as server state, target version support, storage headroom, and upgrade readiness.
- Extension compatibility, including unsupported or version-sensitive extensions.
- Database dependencies and objects, such as read replicas, logical replication slots, event triggers,
PostGIS search_path, and upgrade-sensitive objects. - Engine compatibility, using PostgreSQL
pg_upgrade --check.
If a blocking issue is found, the result includes details to help you understand what needs to be fixed before retrying validation or starting the upgrade.
How to run Pre-Upgrade Validation Checks from the Azure portal
You can run Pre-Upgrade Validation Checks directly from the existing Upgrade experience in the Azure portal.
Step 1: Select Validate only
From your Azure Database for PostgreSQL flexible server, select Upgrade. Choose the target PostgreSQL version, then select Validate only as the action. This runs validation checks without starting the actual upgrade.
Validate only before starting upgrade
Step 2: Review successful validation results
If all validation checks pass, the result shows a successful status. At this point, the server is ready to proceed with the major version upgrade.
Figure 2: Successful validation resultsIn this example, all pre-upgrade validation checks completed successfully, and no blocking issues were detected for the selected target PostgreSQL version.
Step 3: Review and fix validation errors
If validation detects issues, the results page shows failed checks with details and remediation guidance. You can fix the reported issues and run validation again.
Figure 3: Failed validation with remediation detailsIn this example, validation found an event trigger issue before the upgrade was started. The upgrade action remains blocked until the issue is resolved and validation passes.
Step 4: Download validation results
You can also download the validation results as a CSV file. This makes it easier to share findings with DBA, application, platform, or support teams before the actual upgrade window.
Figure 4: Download validation results as CSVThe CSV output is useful for offline review, internal tracking, and support collaboration.
Recommended workflow
Use Pre-Upgrade Validation Checks as part of your upgrade planning process: run validation early, review the results, fix any reported blockers, re-run validation until all checks pass, and then proceed with the major version upgrade.
What happens after validation passes?
Once validation succeeds, you can proceed with the major version upgrade using the existing Azure PostgreSQL upgrade workflow. The actual upgrade remains a separate operation and still includes the managed backup and pg_upgrade execution steps.
Pre-Upgrade Validation Checks do not remove the upgrade downtime window. Instead, they help ensure that known blockers are resolved before that window begins.
Frequently asked questions
Does Validate only perform the upgrade?
No. The Validate only option runs readiness checks without upgrading the server. The actual major version upgrade remains a separate action.
Does this remove downtime?
No. Major version upgrades still require an execution window. The benefit is that compatibility issues can be discovered and resolved before downtime begins.
Can I re-run validation?
Yes. Validation is designed to be repeatable. You can fix reported issues and re-run checks until all validations pass.
What types of blockers can be detected?
Common examples include unsupported extensions, logical replication slots, event triggers, insufficient storage headroom, configuration issues, and PostgreSQL compatibility findings from pg_upgrade --check.
Get started
Pre-Upgrade Validation Checks are now available in Public Preview for Azure Database for PostgreSQL flexible server.
To try it, open your flexible server in the Azure portal, go to Upgrade, select your target PostgreSQL version, and choose Validate only.
Learn more
To learn more about major version upgrades and related Azure PostgreSQL capabilities, see:
- Major version upgrades in Azure Database for PostgreSQL
- Perform a major version upgrade
- Supported PostgreSQL versions
- PostgreSQL extensions supported by Azure Database for PostgreSQL
- Download PostgreSQL server logs
- PostgreSQL
pg_upgradedocumentation
Validate early. Fix with confidence. Upgrade when ready.