Skip to content
SPECIFICTION
Get listed

dbmate vs Evolve

dbmate

github.com

Evolve

github.com

Side by side

FiguredbmateEvolve
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYes—
LinuxYesYes
Self-hostedYes—
Plans published11
Spec score · Database Migration Tools8.6 (#3)7.8 (#14)
CommandsIts commands include creating, applying, and rolling back migrations, checking migration status, dumping or loading a schema, and waiting for a database server.Its four commands are migrate, erase, repair, and info.
PurposeDbmate is a database migration tool that keeps database schemas in sync across developers and production servers.Evolve is a cross-platform database migration tool inspired by Flyway that uses plain SQL scripts.
SupportThe repository README links to a discussion of alternatives and a contribution guide, but the opened page does not specify a support service or response time.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.
TransactionsMigrations run atomically inside a transaction, with per-migration transaction behavior configurable in migration files.By default, each migration runs in a separate database transaction; the TransactionMode option can instead commit or roll back a group of scripts together.

Plans

dbmate

  • dbmateFree

dbmate pricing →

Evolve

  • EvolveFree

Evolve pricing →

In their own words

dbmate

dbmate is a free, open-source command-line tool for keeping database schemas in sync across developers and production servers. It works independently of application language and can be used with Go, Node.js, Python, Ruby, PHP, Rust, C++, and other languages or frameworks. Migrations are plain SQL in timestamp-versioned files. Commands create, apply, and roll back migrations, check status, dump or load a schema, and wait for a database server. The project lists MySQL, MariaDB, PostgreSQL, SQLite, and ClickHouse, and documents BigQuery connections and Spanner support for databases using the PostgreSQL dialect. Migrations run atomically in a transaction by default when the database supports transactions, though individual migration blocks can opt out. dbmate can maintain a schema.sql dump for source-control review and Git diffs; creating dumps relies on database client tools such as pg_dump, mysqldump, or sqlite3. It reads DATABASE_URL by default and can load environment variables from a .env file. Installation options include NPM, Homebrew, Scoop, a Linux binary, and Docker images. Go applications can use it as a library, and Go embed can package migrations into an application binary.

Visit github.com

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.

Visit github.com