Skip to content
SPECIFICTION
Get listed

Evolve

github.com

Free plan WindowsLinux
Visit github.com
Spec score 7.8 #14 of 32 in Database Migration Tools

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

Evolve Free Free-time project; .NET library, .NET tool, standalone CLI Read 9 Oct 2026 · github.com

Every Evolve plan and price →

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

Alternatives to EvolveAll alternatives →