Ptah 0.25.0 Release: From Native YDB to a Provider Platform
A visual guide to the releases since our Ptah 0.13.0 post: provider engines, safer schema changes, and clearer limits in Ptah 0.25.0.
Ptah helps you plan, review, and apply database migrations. Try in your browser
Ptah 0.25.0 is out: from native YDB to a provider platform. Our last release post introduced native YDB schemas and migrations in Ptah 0.13.0. Since then, we have published twelve minor releases and three patch releases. Ptah 0.25.0 was published November 8, 2026.
The main change is how Ptah supports a database engine. YDB and Spanner now run through separately installed providers. At the same time, schema reads, plans, and migration runs gained more precise handling of incomplete reads, dependencies, and refusals. This guide connects the releases to the decisions they change for a team using Ptah.
- 0.14 YDB gains inference Executable providers begin as an experiment.
- 0.15–0.21 The provider learns the full workflow Native plans, migrations, lint, dev databases, and source formats move across the boundary.
- 0.22–0.23 YDB and Spanner leave the binary Official providers are installed as separate executables.
- 0.24–0.25 Coverage becomes visible Reads and exports can name objects and facets they could not describe.
Patch releases 0.16.1, 0.22.1, and 0.24.1 repaired behavior along the way.
An engine can now live outside Ptah
Section titled “An engine can now live outside Ptah”In 0.14.0, we added experimental executable providers and brought embedding generations to YDB. The provider path grew through 0.15.0 and 0.16.0: it gained native operations, migrations, lint, dev databases, and the ability to read a provider’s own schema syntax. Later releases carried the same planning and execution rules across native Ptah and Ptah Compat.
The installation boundary changed in 0.22.0.
YDB is no longer built into the Ptah binaries. Install its official provider
wherever Ptah runs, including CI jobs and container images. A YDB URL then
selects it automatically; without the provider, Ptah reports provider_missing
and names the install command. 0.22.1
fixed comparisons and rehearsals across YDB dev databases. 0.23.0
made the corresponding break for Spanner. DuckDB is also available through an
official provider.
- YDB
- Spanner
- DuckDB
The separation also changes what an extension can own. Provider contracts through 0.24.0 and 0.25.0 let an engine define its SQL lexical rules, object comparisons, capability sources, and dependencies that can block a removal. A provider can report what a schema read did not describe, so an export can preserve that limit instead of silently presenting an incomplete picture. These are contract changes for provider authors; their visible result is a more reliable plan for provider engines. 0.24.1 corrected an HCL export regression involving YDB table settings such as TTL.
Plans and runs tell you more before they change a database
Section titled “Plans and runs tell you more before they change a database”The work between these milestones also reaches built-in engines. In
0.16.0, native Ptah
began requiring explicit permission before running programs named by a project
file. It also started rating more drops as destructive. 0.16.1
made migration replay handle files that manage their own transactions as
golang-migrate does.
Across 0.18.0 to 0.20.0, we tightened the link between a database read and its plan: selected schemas retain needed objects and grants, provider plans can rehearse on dev databases, and a failed provider operation can give its reason. The result matters when a team reviews a change across more than one schema or needs a rollback it can inspect.
0.23.0 closed two security gaps: project-file reads were confined to their intended boundary, and database addresses stopped exposing passwords in output. It also makes MySQL and MariaDB reads fail when the account cannot see objects needed for a reliable comparison. 0.24.0 added explicit render omissions and made a provider’s lock honor the requested timeout. An incomplete read or a lossy render should be a visible decision point, not a clean-looking plan.
What to do on 0.25.0
Section titled “What to do on 0.25.0”If you use YDB or Spanner, install and verify the official provider on each machine or image that runs Ptah. The YDB setup guide and Spanner setup guide cover those installations. Review a fresh plan after upgrading: corrected comparisons and destructive ratings can surface changes an older version did not show. The release index links every version covered by this guide, including the smaller releases between the milestones.
Release highlights
Section titled “Release highlights”- Database providers: YDB and Spanner moved out of the Ptah binaries, and DuckDB joined them as an official provider. Providers now support schema planning and application, versioned migrations, lint, and dev databases through the Ptah host (0.15.0, 0.22.0, 0.23.0).
- YDB inference: Embedding generations and vector search became available on YDB (0.14.0).
- More schema objects in plans: PostgreSQL extensions, types, and row-level security; SQL Server security policies; ClickHouse row policies; and YDB object permissions moved into their engine owners (0.14.0).
- Git sources: Schema and migration directories can come from pinned
git+httpsandgit+sshreferences (0.15.0). - Whole-server MySQL and MariaDB plans: Comparison and planning can cover several databases on one server (0.19.0).
- Visible limits before apply: Ptah now reports render omissions, keeps more incomplete-read coverage through exports, and lets providers identify objects that block a removal (0.24.0, 0.25.0).
- Critical security fixes: Project-file reads stay within their intended boundary, and database addresses no longer expose passwords in output (0.23.0).