Evolve vs pgroll
Evolve
github.compgroll
pgroll.comSide by side
| Figure | Evolve | pgroll |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | Yes |
| Windows | Yes | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 2 |
| Spec score · Database Migration Tools | 7.8 (#14) | 8.5 (#7) |
| Purpose | Evolve is a cross-platform database migration tool inspired by Flyway that uses plain SQL scripts. | pgroll is an open-source command-line tool for safe, reversible PostgreSQL schema migrations that keep multiple schema versions available simultaneously. |
| Support | The maintainer says the project is personal, free-time, and unfunded, and invites users and companies to support it through GitHub Sponsors; company donations are mentioned as a way to receive priority support. | Users are directed to GitHub issues, GitHub discussions and Discord for assistance. |
Plans
In their own words
Evolve
Evolve is a free, open-source database migration tool that applies plain SQL scripts to synchronize changes across environments and development teams, including continuous integration and delivery. It is available as a .NET library, .NET tool, or standalone CLI. Listed databases include PostgreSQL, SQL Server, SQLite, MySQL, MariaDB, Cassandra, and CockroachDB. Versioned migrations run once; repeatable migrations run again when their contents change. Evolve records migration names and checksums in a metadata table and checks them whenever it runs. Commands are migrate, erase, repair, and info. Each migration normally uses its own transaction, while TransactionMode can group scripts for commit or rollback. Cluster mode uses a session-level lock to coordinate nodes. The standalone CLI supports x64 Windows and Linux without external dependencies. The library requires .NET 4.7.2+ or .NET Standard 2.0/.NET 5.0; the tool requires .NET Core SDK 3.0 or later.
pgroll
pgroll is an open-source command-line tool for PostgreSQL schema migrations that keeps old and new schema versions available while applications move between them. Its expand/contract workflow lets clients choose a version through PostgreSQL's search_path. The project describes migrations as zero-downtime and says it applies changes without locking the database; it can also backfill columns automatically when needed. For breaking changes, pgroll builds virtual schemas from views over physical tables and uses triggers to carry writes between old and new columns. Active migrations can be rolled back to the previous schema version. It supports PostgreSQL 14 and later, including RDS and Aurora, and is available for Linux, macOS, and Windows or self-hosting. It can convert SQL generated by ORMs, with examples for Alembic, Django, and Drizzle, though manual data migrations and SQL consolidation may be needed. On PostgreSQL 14, its versioned views do not respect row-level security policies, which can make it a poor choice for RLS users on that version. The project is licensed under Apache License 2.0.