Supabase Postgres 14 ends soon: what to check before auto-upgrade

Dev

Database upgrades are easy to postpone because the application still works today. This one has a platform date attached. Supabase says support for Postgres 14 ends on July 1, 2026, and projects still on a deprecated version on that date will be automatically upgraded to the latest available Postgres version. The operationally important caveat is that projects using extensions that are no longer supported may be paused instead and stop serving traffic until the blocker is removed.

01
Check version
02
Audit extensions
03
Stage upgrade
04
Plan downtime
05
Validate rollback
A practical operating flow for moving Supabase projects off Postgres 14 before July 1.

Why this matters now

PostgreSQL upstream lists Postgres 14 end of life for November 12, 2026, so Supabase is moving earlier than the community EOL. That is not unusual for a managed platform: providers often need to reduce the number of old runtime combinations they operate. For product teams, however, it changes the priority from “we should upgrade this quarter” to “we need to know whether July 1 can affect production.”

Official references to verify before acting: Supabase changelog, Supabase upgrade guide, and PostgreSQL 14 EOL notice.

What changed

Supabase documents two upgrade paths. The recommended path for most eligible projects is an in-place upgrade using `pg_upgrade`; for databases larger than 1GB, Supabase says this is generally faster than pausing and restoring, and the advantage grows with database size. It is still a downtime operation. The docs explicitly tell teams to plan an appropriate window and assume the database and related services will be unavailable during the upgrade.

SurfaceExampleWhy it matters
Version`select version();`Do not rely on memory or project age.
Extensionsplv8, timescaledb, pgjwt, pg_cronExtension compatibility decides whether automation is safe.
Rolescustom login rolesPasswords for custom roles may need manual handling.
Replicationlogical replication slotsSlots may need to be recreated after upgrade.
Validationauth, RLS, jobs, webhooksApplication smoke tests catch what platform checks cannot.

Community signal

The community discussion around this notice is less about the headline date and more about what can break around the database. A Reddit migration story is not a factual source for the policy, but it is a useful signal: developers are worried about extension compatibility, large `pg_cron` history tables, custom roles, replication slots, and integrations that quietly depend on old behavior.

Community migration discussions are useful as narrative signals, but the operational policy should be checked against Supabase’s official changelog and docs.

Development and operations impact

For a small personal project, the automatic upgrade may be enough. For a production app, Postgres is often the control plane for authentication, billing webhooks, feature flags, analytics, background jobs, and AI retrieval data. A major database upgrade can touch ORM assumptions, RLS policies, extension functions, connection pools, GraphQL introspection, BI jobs, and dashboards. The upgrade button is only half the work; the post-upgrade validation is where the incident risk usually hides.

What to do now

Upgrade readiness checklist

Capture `select version();` from the SQL Editor.

Confirm service versions and upgrade eligibility in the Dashboard.

Audit extensions, `pg_cron` history size, and custom role password methods.

Document logical replication slots and external ETL or BI reconnection steps.

Smoke test auth, RLS, webhooks, jobs, admin screens, and analytics in staging.

Set the downtime notice, rollback criteria, and Supabase support path before production.

Start by running `select version();` in the SQL Editor so the team is not guessing. Then inventory extensions, custom roles, logical replication, scheduled jobs, external clients, and the critical user flows that must pass after the upgrade. Run the upgrade in staging or a restored copy first. Book a downtime window that matches the database size and the business calendar. Decide in advance who can call rollback, what evidence is required, and how to reach Supabase support if the platform-side validation fails.

Risks and counterarguments

The reasonable counterargument is that a managed service should handle managed upgrades. That is true for the mechanics, not for your application contract. Supabase can run the infrastructure workflow; only your team knows whether a `pgjwt` dependency is actually unused, whether a BI user relies on a custom role password, or whether a queue worker reconnects cleanly after downtime. The goal is not to chase the newest Postgres release. It is to remove the preventable failure modes before the platform deadline arrives.

Sources