Evolve
github.com
What it is
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.
Spec sheet
- Purpose
- Evolve is a cross-platform database migration tool inspired by Flyway that uses plain SQL scripts.Read 9 Oct 2026 · github.com
- 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.Read 9 Oct 2026 · github.com
- Automation
- It automates database changes and keeps them synchronized across environments and development teams, including for continuous integration and delivery.Read 9 Oct 2026 · github.com
- Cassandra limitation
- For Cassandra scripts, commands must end with a semicolon as the last character on a line, and the `use <keyspace>;` command is unsupported by the underlying driver.Read 9 Oct 2026 · evolve-db.netlify.app
- Cluster coordination
- Cluster mode uses a session-level lock to coordinate migrations across nodes and prevent concurrent Evolve commands on the same database.Read 9 Oct 2026 · evolve-db.netlify.app
- CockroachDB limitation
- Concurrent migrations are not officially supported for CockroachDB because it does not implement `pg_try_advisory_lock`; the documented alternative is described as not battle tested.Read 9 Oct 2026 · evolve-db.netlify.app
- Commands
- Its four commands are migrate, erase, repair, and info.Read 9 Oct 2026 · evolve-db.netlify.app
- Deployment formats
- Evolve is available as a .NET library, a .NET tool, and a standalone CLI.Read 9 Oct 2026 · github.com
- Migration tracking
- Evolve stores migration names and checksums in a metadata table and checks it each time Evolve runs.Read 9 Oct 2026 · evolve-db.netlify.app
- Migration types
- Evolve supports versioned migrations that run once and repeatable migrations that run again when their content changes.Read 9 Oct 2026 · evolve-db.netlify.app
- Runtime requirements
- The .NET library requires .NET 4.7.2+ or .NET Standard 2.0/.NET 5.0, while the .NET tool requires .NET Core SDK 3.0 or later.Read 9 Oct 2026 · evolve-db.netlify.app
- Standalone CLI platforms
- The standalone CLI is provided for x64 Windows and Linux and has no external dependencies.Read 9 Oct 2026 · evolve-db.netlify.app
- Supported databases
- The documentation lists PostgreSQL, SQL Server, SQLite, MySQL, MariaDB, Cassandra, and CockroachDB.Read 9 Oct 2026 · evolve-db.netlify.app
- Transactions
- By default, each migration runs in a separate database transaction; the TransactionMode option can instead commit or roll back a group of scripts together.Read 9 Oct 2026 · evolve-db.netlify.app
Plans and prices
Strong points and limits
Strong points
- Free and open source
- Plain SQL migration format
- Supports versioned and repeatable migrations
- Cluster locking coordinates migration runs
- Standalone CLI has no external dependencies
Limits
- CockroachDB concurrent migrations are unsupported
- Cassandra scripts require semicolon line endings
- Runtime requirements vary by deployment format
- Project is maintained as unfunded free-time work
Who it suits
Evolve suits developers and teams managing SQL migrations across environments, including CI/CD pipelines. It is appropriate for self-hosted deployments using supported databases and .NET runtimes.
Verdict
Evolve provides SQL-based migrations, tracking, transactions, rollback support, and several deployment forms at no listed cost. Database-specific constraints and runtime requirements should be checked before adoption.
Where Specifiction places it
- Database Migration Tools#14 of 327.8