{"collection":{"slug":"serverless-postgres","name":"Serverless Postgres"},"digest":{"id":"cwd_isbG4wFFk_MaEXPIdODL0","weekStart":"2026-05-18","title":"CLIs get stricter, snapshots get larger","intro":"Supabase shipped a stable CLI release with a new declarative schema sync flag, while Neon raised manual snapshot limits on paid plans and PlanetScale tightened its switch-traffic command.","body":"### Schema sync, safely\n\nSupabase CLI hit [v2.101.0](/release/rel_0JePBAZ28pgbccXwqAjN9-v2-101-0) this week, bringing a handful of fixes that add up to a more predictable local-to-production workflow. The headliner is a new `--no-apply` flag on the `db schema declarative sync` command, which lets you preview what a schema change would do before committing it — a safeguard that should feel familiar to anyone who's used Terraform's plan mode. The beta trail for this feature ran through several iterations earlier in the week ([v2.101.0-beta.1](/release/rel_8UNIXn4JEZHHs3YmKCATr-v2-101-0-beta-1) and others), and the stable release also bundles fixes for alias documentation links and CI tag handling.\n\nAlongside the schema work, the CLI team continued a longer migration of backend functionality from Go to native TypeScript. Two beta releases this week ported [backup list/restore](/release/rel_JEDo58GVZaSR6AJIkJvQ_-v2-102-0-beta-1) and [SSL enforcement](/release/rel_OI6NB5F_MGzJLKAaj82A1-v2-102-0-beta-2) commands, which should eventually make the CLI faster to build and easier to contribute to. If you're running on older x64 hardware, [v2.101.1-beta.1](/release/rel_pufM1Dvw-KFSn7m0G-uz6-v2-101-1-beta-1) fixes a compatibility regression that had blocked some users.\n\n### Client SDK patches for Next.js and Expo\n\nThe Supabase Client SDK shipped [v2.106.1](/release/rel_FR7MMYvz6riHuBXc4WOPy-v2-106-1) with two fixes that matter if you build for React Native or handle OAuth yourself. A `hide dynamic import from hermesc` patch prevents Hermes (the JavaScript engine used in React Native on Android) from choking on a `require` call it doesn't understand — this had been breaking apps using Expo or bare React Native. Separately, the SDK now percent-encodes the `client-id` parameter in OAuth requests, a correctness fix that stops certain providers from rejecting the authorization redirect.\n\n### Safety rails from PlanetScale and Neon\n\nPlanetScale updated its CLI to [v0.284.0](/release/rel_cKhxYIkLKX0Rcj01S2mEr-planetscale-cli-v0-284-0-requires-tablet-types-for-switch-traffic), making `tablet-types` a required argument for the `switch-traffic` command. If you've ever accidentally sent production traffic to a read replica instead of a primary, you'll appreciate the guardrail: the CLI now refuses to proceed unless you explicitly declare which tablet types (primary, replica, etc.) should receive the switch.\n\nOver at Neon, paid plans now get [100 manual snapshots per project](/release/rel_dm3e-aT8sKL-1P5OGl852-neon-increases-manual-snapshot-limit-to-100-on-paid-plans), up from 10. The change is simple but useful for teams that like to snapshot before risky migrations — and since automatic backup snapshots don't count toward the limit, you're free to use those 100 slots as insurance for manual operations.\n\n### Prisma tidies up\n\nTwo small but welcome touches from Prisma: the ORM [stopped using the deprecated `Buffer()` constructor](/release/rel_l1VdSdTJ2uu0TNapw0TmJ-prisma-orm-stops-using-deprecated-buffer-constructor), killing the `DEP0005` warnings that have been cluttering Node.js console output for the last few major releases. And the [Language Tools extension](/release/rel_uXAhjNvKvXakbrbeNKNIm-31-11-0) shipped v31.11.0, keeping your editor's Prisma syntax highlighting and autocomplete in sync with the latest schema features.","releaseIds":["rel_0JePBAZ28pgbccXwqAjN9","rel_8UNIXn4JEZHHs3YmKCATr","rel_JEDo58GVZaSR6AJIkJvQ_","rel_OI6NB5F_MGzJLKAaj82A1","rel_pufM1Dvw-KFSn7m0G-uz6","rel_FR7MMYvz6riHuBXc4WOPy","rel_cKhxYIkLKX0Rcj01S2mEr","rel_dm3e-aT8sKL-1P5OGl852","rel_l1VdSdTJ2uu0TNapw0TmJ","rel_uXAhjNvKvXakbrbeNKNIm"],"releaseCount":49,"generatedAt":"2026-07-11T16:33:50.558Z","releases":[{"id":"rel_0JePBAZ28pgbccXwqAjN9","title":"v2.101.0","path":"/release/rel_0JePBAZ28pgbccXwqAjN9-v2-101-0","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_8UNIXn4JEZHHs3YmKCATr","title":"v2.101.0-beta.1","path":"/release/rel_8UNIXn4JEZHHs3YmKCATr-v2-101-0-beta-1","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_JEDo58GVZaSR6AJIkJvQ_","title":"v2.102.0-beta.1","path":"/release/rel_JEDo58GVZaSR6AJIkJvQ_-v2-102-0-beta-1","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_OI6NB5F_MGzJLKAaj82A1","title":"v2.102.0-beta.2","path":"/release/rel_OI6NB5F_MGzJLKAaj82A1-v2-102-0-beta-2","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_pufM1Dvw-KFSn7m0G-uz6","title":"v2.101.1-beta.1","path":"/release/rel_pufM1Dvw-KFSn7m0G-uz6-v2-101-1-beta-1","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_FR7MMYvz6riHuBXc4WOPy","title":"v2.106.1","path":"/release/rel_FR7MMYvz6riHuBXc4WOPy-v2-106-1","org":{"slug":"supabase","name":"Supabase"},"importance":null},{"id":"rel_cKhxYIkLKX0Rcj01S2mEr","title":"PlanetScale CLI v0.284.0 requires tablet-types for switch-traffic","path":"/release/rel_cKhxYIkLKX0Rcj01S2mEr-switch-traffic-now-requires-tablet-types","org":{"slug":"planetscale","name":"PlanetScale"},"importance":null},{"id":"rel_dm3e-aT8sKL-1P5OGl852","title":"Neon increases manual snapshot limit to 100 on paid plans","path":"/release/rel_dm3e-aT8sKL-1P5OGl852-paid-plans-now-allow-100-manual-snapshots-per-project","org":{"slug":"neon","name":"Neon"},"importance":null},{"id":"rel_l1VdSdTJ2uu0TNapw0TmJ","title":"Prisma ORM stops using deprecated Buffer constructor","path":"/release/rel_l1VdSdTJ2uu0TNapw0TmJ-buffer-deprecation-warnings-eliminated","org":{"slug":"prisma","name":"Prisma"},"importance":2},{"id":"rel_uXAhjNvKvXakbrbeNKNIm","title":"31.11.0","path":"/release/rel_uXAhjNvKvXakbrbeNKNIm-31-11-0","org":{"slug":"prisma","name":"Prisma"},"importance":null}]}}