DBAtlas · Database operations atlas

Pre-upgrade compatibility/readiness check

Oracle

-- Recommended method for 19c and later (AutoUpgrade analyze mode):
-- $ java -jar autoupgrade.jar -config db.cfg -mode analyze
-- Legacy/alternative: preupgrade script (produces a report only):
-- $ $NEW_ORACLE_HOME/jdk/bin/java -jar $NEW_ORACLE_HOME/rdbms/admin/preupgrade.jar FILE TEXT DIR /tmp

AutoUpgrade 'analyze' mode produces a pre-upgrade report without changing data; it lists warnings that must be fixed and items that will be resolved automatically. Always run it before the actual upgrade.

PostgreSQL

# With the new version's binaries, compatibility check only (moves no data):
$ pg_upgrade \
    --old-datadir=/var/lib/pgsql/16/data \
    --new-datadir=/var/lib/pgsql/17/data \
    --old-bindir=/usr/pgsql-16/bin \
    --new-bindir=/usr/pgsql-17/bin \
    --check

--check verifies that the upgrade is feasible without changing any data (reports missing extensions, incompatible data types, etc.). --check can also be run while the old cluster is running; the actual upgrade is done with both clusters stopped.

MySQL

-- 8.0 and later: Upgrade Checker utility (MySQL Shell):
-- $ mysqlsh -- util check-for-server-upgrade { --user=root --host=localhost }
-- Table consistency for legacy 5.7->8.0:
$ mysqlcheck --all-databases --check-upgrade -u root -p

MySQL Shell's util.checkForServerUpgrade() reports removed features, reserved word conflicts, and incompatible definitions. From 8.0 on, the server performs the dictionary upgrade itself at startup; a separate mysql_upgrade is no longer needed.

SQL Server

-- Run from the desktop with Data Migration Assistant (DMA):
-- DmaCmd.exe /AssessmentName=... /AssessmentDatabases=...
-- (Produces compatibility/deprecated feature and blocker reports.)

Data Migration Assistant (DMA) replaced the old Upgrade Advisor; it reports deprecated features, breaking changes, and blockers per database. Run it before the upgrade and resolve the findings.

MongoDB

// Verify the current Feature Compatibility Version (FCV):
db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 })
// Compatibility items (deprecations) in the release notes are reviewed manually.

Before upgrading the binary version, the FCV must equal the current version; otherwise the upgrade is blocked. MongoDB has no automatic 'deprecation scanner'; release compatibility notes are reviewed manually.

Redis

# Not applicable: Redis has no separate pre-upgrade readiness tool.
# Checklist: read the target version's release notes for RDB/AOF persistence format,
# changed configuration directives, and removed commands/arguments.

Redis upgrades are generally forward compatible; since there is no official readiness scanner, check the RDB/AOF file format, removed configuration directives, and command changes manually from the release notes.

Elasticsearch

GET _migration/deprecations
# For a specific component: GET <index>/_migration/deprecations

The Deprecation Info API lists cluster, node, index, and ML settings that will cause problems when moving to the next major version as 'critical' / 'warning'. Kibana Upgrade Assistant visualizes the same data.

Open in DBAtlas →