Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions release-notes/v2.109.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
## Supabase CLI v2.109.0 — 2026-06-30

v2.109.0 moves migration commands to TypeScript with a critical fix for pipeline-incompatible SQL statements, adds `db reset --sql-paths` for CI workflows, and resolves several database operation bugs.

### Highlights
- **Migration files with pipeline-incompatible statements now apply correctly** — `migration up`/`down` now handle `CREATE INDEX CONCURRENTLY`, `VACUUM CONCURRENTLY`, `REINDEX CONCURRENTLY`, `ALTER SYSTEM`, `CLUSTER` without failing. (#5671)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge List the valid VACUUM statement syntax

For migrations that contain VACUUM statements, the #5671 implementation handles bare VACUUM / VACUUM (...) via legacyIsPipelineIncompatible, not a VACUUM CONCURRENTLY form; VACUUM CONCURRENTLY is not valid Postgres syntax. Publishing this highlight would tell users to expect or write an invalid SQL statement and misdescribe the fix, so it should say VACUUM instead.

Useful? React with 👍 / 👎.


### New features
- **`db reset --sql-paths`** — Override seed SQL patterns per-reset without editing `config.toml`. (#5691)

### Bug fixes
- Declarative schema sync detects stale local Postgres images and suggests restart instead of silently generating broken migrations. (#5646)
- `db diff` no longer fails when `schema_paths` glob patterns match no files, enabling gradual adoption of declarative schema. (#5702)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify when empty schema_paths globs are skipped

The #5702 change only skips empty schema_paths glob entries when other schema files are still found; it still returns an error when all configured globs are empty via WithErrorOnAllSkippedGlobs, and literal missing paths still fail. As written, users with only empty glob patterns will expect db diff to continue, so the note should narrow this to partially-empty glob lists or mention the all-empty exception.

Useful? React with 👍 / 👎.

- Fixed `db diff`, `db pull`, and `db schema push` crashing when `supabase/migrations` directory already exists (Windows OneDrive, etc.). (#5724)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Name the actual schema sync command

The #5724 fix changed directory creation in db diff, db pull, and db schema declarative sync; repo-wide search shows no db schema push command. Publishing this as db schema push points users at a nonexistent command and misses the affected declarative sync workflow, so the command name should be corrected.

Useful? React with 👍 / 👎.

- Fixed `supabase functions serve` crashing with "name too long" error on Windows when runtime bootstrap is large. (#5712)
- Fixed `config push` failing when remote Storage config is missing the optional `databasePoolMode` setting. (#5729)

### TypeScript port progress
- **Now served by the TypeScript shell:** `migration new`, `migration list`, `migration fetch`, `migration repair`, `migration up`, `migration down`. Behavior matches the Go CLI. (#5671)

---

Plus 20 internal improvements and dependency updates.

**Full changelog:** https://github.com/supabase/cli/compare/v2.108.0...v2.109.0