reshape
pgroll
Our great sponsors
reshape | pgroll | |
---|---|---|
16 | 14 | |
1,621 | 2,504 | |
- | 14.7% | |
7.4 | 9.4 | |
about 1 month ago | 8 days ago | |
Rust | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
reshape
- Show HN: Reshape – Zero-downtime schema migrations for Postgres
-
Pgroll: zero-downtime, undoable, schema migrations for Postgres
Cool stuff! Do you have any thoughts about how this compares to https://github.com/fabianlindfors/reshape?
-
Postgres schema changes are still a PITA
From what I know, there is only one project that tries something close to this: the relatively recent Reshape. It uses Postgres views to expose the two versions of the schema and triggers to upgrade/downgrade the new data. It doesn’t do the constraints part as described above, but shows that this approach is possible. Combined with the Xata pull request based workflow, I think the ideal system described above is possible!
-
Conceptually how do you handle deploys of SQL related things (table definition, scripts, stored procs etc) in a CI/CD way?
My idea is not unique. Reshape is similar, but bigger in scope.
-
The operational relational schema paradigm
This is precisely what I did for my automated zero-downtime migration tool and it works pretty well: https://github.com/fabianlindfors/reshape. At least for Postgres, simple views like these have almost no overhead as queries are simply rewritten for the underlying table.
-
Changing Tires at 100mph: A Guide to Zero Downtime Migrations
Anybody interested in this subject might also be interested in a tool for Postgres I’ve been working on, Reshape: https://github.com/fabianlindfors/reshape. It aims to fully automate away all the pain and manual steps zero-downtime migrations normally requires :)
- Reshape: An experimental, easy-to-use, zero-downtime migration tool for Postgres
-
PostgreSQL at Scale: Database Schema Changes Without Downtime
This post is absolutely terrific and has been been my main reference for Reshape, an automated, zero-downtime schema migration tool: https://github.com/fabianlindfors/reshape
- When Postgres blocks: tips for dealing with locks
- Reshape
pgroll
-
Building a Managed Postgres Service in Rust
I thought I recognized xataio - they submitted pgroll a few months back https://news.ycombinator.com/item?id=37752366 (https://github.com/xataio/pgroll - Apache 2)
- Revolutionizing PostgreSQL Schema Changes with pg-osc
- PostgreSQL zero-downtime and reversible migrations
-
How pgroll works under the hood
At the start of October we released pgroll, an open source tool for zero-downtime, reversible schema migrations for Postgres.
-
Introducing pgroll: zero-downtime, reversible, schema migrations for Postgres
If you have any suggestions or questions, please open an issue in our GitHub repo, reach out to us on Discord or follow us on X / Twitter. We'd love to hear from you and keep you up to date with the latest progress on pgroll.
-
Pgroll: zero-downtime, undoable, schema migrations for Postgres
Any pgroll operations[0] that require a change to an existing column, such as adding a constraint, will create a new copy of the column and backfill it using 'up' SQL defined in the migration and apply the change to that new column.
There are no operations that will modify the data of an existing column in-place, as this would violate the invariant that the old schema must remain usable alongside the new one.
[0] - https://github.com/xataio/pgroll/tree/main/docs#operations-r...
-
Database Migrations
This is a fantastic article! It shows that even simple migrations (like adding or removing a column) can be quite tricky to deploy in concert with the application deployement.
We (at Xata) have tried for a while to come up with a generic schema migration system for PostgreSQL that makes this easier. We ended up using views and temporary columns in such a way that we can provide both the "old" and the "new" schema simultaneously. Up/down triggers convert newly inserted data from old to new and the other way around. This also has the advantage the it can do rollbacks instantly by just dropping the "new" view.
We were just planning to announce this as an open source project this week, but actually it is already public, so if you are curious: https://github.com/xataio/pgroll
What are some alternatives?
pg-online-schema-change - Easy CLI tool for making zero downtime schema changes and backfills in PostgreSQL [Moved to: https://github.com/shayonj/pg-osc]
migrate - Database migrations. CLI and Golang library.
migra - Like diff but for PostgreSQL schemas
bob - SQL query builder and ORM/Factory generator for Go with support for PostgreSQL, MySQL and SQLite
gh-ost - GitHub's Online Schema-migration Tool for MySQL
postgres_migrator - A postgres migration generator and runner that uses raw declarative sql.
atlas - Manage your database schema as code
tusker - PostgreSQL migration management tool
bytebase.com - Source for bytebase.com
pg-osc - Easy CLI tool for making zero downtime schema changes and backfills in PostgreSQL
refinery - Powerful SQL migration toolkit for Rust.