Development
Introducing ForgeSchema
A PostgreSQL schema evolution engine in Go, with a reproducible inspect, plan, apply and verify walkthrough.
A PostgreSQL schema evolution engine in Go, built around inspect, plan, apply and verify. It reads defaults, identity columns, unique, check and foreign key constraints, explains every change before it runs, builds indexes online, drops nothing you did not list, then verifies independently.
Go
One command line foundation
PostgreSQL
The first database target
Keys
Unique constraints and foreign keys
4 commands
Inspect, plan, apply and verify
Scope, not performance measurements. Every release is tested against PostgreSQL 16.10 and 17.6 before it is published.
Development
A PostgreSQL schema evolution engine in Go, with a reproducible inspect, plan, apply and verify walkthrough.
Case Studies
This one comes up whenever an old application gets a second look. The orders table has a customer_id column. It has always pointed at customers.id. Nobody ever declared …
Case Studies
An online shop wants three new columns on orders. A status that every order must have. A fulfilled_at timestamp. And a public_id uuid to show customers instead of the …
Case Studies
Here’s a scenario almost every product team hits sooner or later. Sign-up has been running for two years. Somebody finally notices that customers.email was never …
Case Studies
Reporting is slow. The query behind the monthly dashboard filters events by account and date, and events is by far the biggest table in the database. Everyone agrees it …
Case Studies
Picture a team with three environments: development, staging and production. The schema lives in a YAML file in the repository, and everyone agrees that file is the …
Development
ForgeSchema 0.3.0 is out. It’s the first release that isn’t labelled alpha, and the first one that went out on its own: bump the version, push, and CI builds, …
Development
The first alpha could only read a schema if it had no defaults, no identity columns, no unique constraints and no foreign keys. That’s almost no real database. …
Case Studies
Two branches both touched schema/app.yaml. One added a phone column to customers. The other moved a few columns around for readability. Git resolved the conflict, the …
Code, reference docs, test results and release notes all live in the code repository.