Freedom251 › Database Migration Tools
Evolve

What Evolve is
Evolve is an open-source database migration tool that applies plain SQL scripts to manage database changes across environments and development teams. It can automate migrations in continuous integration and delivery workflows, and is available as a .NET library, a .NET tool, or a standalone CLI. The documentation lists PostgreSQL, SQL Server, SQLite, MySQL, MariaDB, Cassandra, and CockroachDB as supported databases. Evolve handles versioned migrations, which run once, and repeatable migrations, which run again when their contents change. It records migration names and checksums in a metadata table and checks that record each time it runs. Its four commands are migrate, erase, repair, and info. Each migration runs in its own database transaction by default; TransactionMode can instead commit or roll back a group of scripts together. Cluster mode coordinates migration runs across nodes with a session-level lock. Evolve is free and self-hostable, with rollback support and CI/CD automation. Its standalone CLI is available for 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.
Who it suits
Evolve suits developers and teams who manage database changes with SQL scripts across multiple environments, including CI/CD workflows. It is a fit for projects using one of its listed databases and a supported .NET deployment format.
What it does well
- Free, open-source, and self-hosted.
- Supports seven documented database systems.
- Provides versioned and repeatable SQL migrations.
- Offers rollback support and CI/CD automation.
- Cluster mode coordinates runs with a session-level lock.
What to know first
- The .NET library and tool require specified .NET runtimes.
- CockroachDB concurrent migrations are not officially supported.
- Cassandra scripts require a semicolon at the end of a line.
Limits
The .NET library requires .NET 4.7.2+ or .NET Standard 2.0/.NET 5.0, and the .NET tool requires .NET Core SDK 3.0 or later. Concurrent migrations are not officially supported for CockroachDB; its documented alternative is not battle tested. Cassandra scripts have semicolon and keyspace-command restrictions.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| Evolve | Free-time project; .NET library, .NET tool, standalone CLI | Free |
As github.com lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Open the Evolve GitHub website.
- Choose the .NET library, .NET tool, or standalone CLI deployment format.
- For the library, use .NET 4.7.2+ or .NET Standard 2.0/.NET 5.0; for the tool, use .NET Core SDK 3.0 or later.
- For the standalone CLI, use x64 Windows or Linux.
Verdict
Choose Evolve if you want a free SQL migration tool that can run as a .NET library, tool, or standalone CLI. Look elsewhere if you need officially supported concurrent migrations for CockroachDB or cannot meet its runtime requirements.
Questions
How much does Evolve cost?
The Evolve plan is free. It is open source.
Which databases does Evolve support?
The documentation lists PostgreSQL, SQL Server, SQLite, MySQL, MariaDB, Cassandra, and CockroachDB.
What deployment formats are available?
Evolve is available as a .NET library, a .NET tool, and a standalone CLI.
What are the runtime requirements?
The library requires .NET 4.7.2+ or .NET Standard 2.0/.NET 5.0. The .NET tool requires .NET Core SDK 3.0 or later.
Does Evolve support rollback and CI/CD?
Yes. Rollback support and CI/CD automation are listed.
Can Evolve coordinate migrations across nodes?
Cluster mode uses a session-level lock to prevent concurrent Evolve commands on the same database.
Facts from Evolve's own pages
- Automation
- It automates database changes and keeps them synchronized across environments and development teams, including for continuous integration and delivery. · github.com, 9 Oct 2026
- 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. · evolve-db.netlify.app, 9 Oct 2026
- Cluster coordination
- Cluster mode uses a session-level lock to coordinate migrations across nodes and prevent concurrent Evolve commands on the same database. · evolve-db.netlify.app, 9 Oct 2026
- 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. · evolve-db.netlify.app, 9 Oct 2026
- Commands
- Its four commands are migrate, erase, repair, and info. · evolve-db.netlify.app, 9 Oct 2026
- Deployment formats
- Evolve is available as a .NET library, a .NET tool, and a standalone CLI. · github.com, 9 Oct 2026
- Migration tracking
- Evolve stores migration names and checksums in a metadata table and checks it each time Evolve runs. · evolve-db.netlify.app, 9 Oct 2026
- Migration types
- Evolve supports versioned migrations that run once and repeatable migrations that run again when their content changes. · evolve-db.netlify.app, 9 Oct 2026
- Purpose
- Evolve is a cross-platform database migration tool inspired by Flyway that uses plain SQL scripts. · github.com, 9 Oct 2026
- 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. · evolve-db.netlify.app, 9 Oct 2026
- Standalone CLI platforms
- The standalone CLI is provided for x64 Windows and Linux and has no external dependencies. · evolve-db.netlify.app, 9 Oct 2026
- 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. · github.com, 9 Oct 2026
- Supported databases
- The documentation lists PostgreSQL, SQL Server, SQLite, MySQL, MariaDB, Cassandra, and CockroachDB. · evolve-db.netlify.app, 9 Oct 2026
- 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. · evolve-db.netlify.app, 9 Oct 2026
Where Evolve stands on Freedom251
- Database Migration Tools#14 of 32