Repository navigation
fix(cli): drop Postgres 13 and deprecate Postgres 14 for local databases - #7594
Conversation
The CLI has no Postgres 13 image: db.major_version = 13 booted the Postgres 15 image and loaded a 13.3 schema dump into it. Reject 13 at config validation with a pointer to the upgrade guide, and delete the 13.3 schema dump and its image mapping.
CLI benchmark (Lightweight Commands): no changes foundCommit
API calls: unchanged for all 8 commands. Binary size: 134.8 MB, down 192.0 KB from 135.0 MB. Details: timing ranges, API calls per command, slowest phasesTiming ranges
API calls per command
Slowest phasesNo command moved beyond noise, so there are no phase deltas. Comment |
There was a problem hiding this comment.
🤖 AI Review
Confirmed all three Claude findings. Rejecting Postgres 13 breaks previously accepted configurations, blocks remote database workflows, and leaves compatibility documentation stale. The type-generation impact is limited to paths that resolve a database connection; API-only generation is unaffected. Codex reported no findings.
Findings
| Severity | Location | Category | Sources | Claim |
|---|---|---|---|---|
| 🟠 MAJOR | apps/cli/src/command-internal/config-validate.ts:292 |
breaking-change |
claude | Rejecting db.major_version = 13 removes previously supported behavior. Existing projects using this configuration now fail local start, db start, db reset, and ordinary stop invocations during validation. The previous PG15 image mapping and PG13 schema bootstrap gave this value documented meaning. Please use a fix(cli)!: style title, add a BREAKING CHANGE: line to the PR description, and retarget the PR from develop to next. |
| 🟠 MAJOR | apps/cli/src/command-internal/config-validate.ts:292 |
correctness |
claude | The shared rejection also blocks remote workflows when the resolved project configuration specifies major 13. db dump --linked and migration up/down --linked now fail even though they do not start a local database. Linked db pull, db diff, migration squash, and direct remote type generation are also affected, extending the removal beyond local database startup. |
| 🟡 MINOR | apps/cli/src/commands/start/SIDE_EFFECTS.md:305 |
documentation |
claude | The command compatibility contracts still describe major 13 selecting the PG15 image, although the PR rejects that configuration and removes its image mapping. |
Findings outside the diff
- 🟡 MINOR
apps/cli/src/commands/start/SIDE_EFFECTS.md:305— The command compatibility contracts still describe major 13 selecting the PG15 image, although the PR rejects that configuration and removes its image mapping.
Stats
Claude findings: 3 · Codex findings: 0 · Confirmed: 3 · Refuted: 0 · Uncertain: 0
Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: auto · Workflow run
This review runs once per PR. A maintainer can request another with a /ai-review comment.
supabase start and db start print a stderr warning when db.major_version is 14: Postgres 14 reached end of life on November 12, 2026, and the CLI will drop support for it soon.
Summary
db.major_version = 13at config validation with a dedicated message that points to the Postgres upgrade guide and names Postgres 17 as the target, alongside the existing 12.x message. Accepted values are now 14, 15 and 17.supabase startandsupabase db startprint a stderrWARNING:whendb.major_version = 14: Postgres 14 reached end of life on November 12, 2026, and the CLI will drop support for it soon. The warning names Postgres 17 as the upgrade target, links the upgrade guide, and prints before the already-running check, so it shows up on every start.Context
The CLI ships no Postgres 13 image, so a v13 config already booted Postgres 15 with the 13.3 schema loaded on top. Stack mode already rejects anything other than 15 or 17. Postgres 14 support will be removed in a follow-up once the remaining projects have upgraded.