Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Database Migration Tools
  3. dbmate

dbmate

What it is

dbmate is a free, open-source database migration tool for keeping schemas aligned across developers and production servers. Its standalone command-line interface works with Go, Node.js, Python, Ruby, PHP, Rust, C++, and other languages or frameworks. Migrations use plain SQL files with timestamp-based versions. The project lists MySQL, MariaDB, PostgreSQL, SQLite, and ClickHouse, and documents BigQuery connections and Spanner support for databases using the PostgreSQL dialect. Commands cover creating, applying, and rolling back migrations, checking status, managing schema dumps, and waiting for a database server. When supported by the database, each migration runs in a transaction by default, though individual migrations can change that behavior. dbmate can keep a schema.sql file for source control review; creating a dump depends on database client tools such as pg_dump, mysqldump, or sqlite3. It reads DATABASE_URL by default and can load variables from a .env file. It is available for Linux, macOS, Windows, and self-hosted use, with installation options including NPM, Homebrew, Scoop, a Linux binary, and Docker images. Go applications can also use it as a library, and Go embed can package migrations into an application binary.

For and against

For

  • Free and open source under the MIT License.
  • Supports rollback and migration status checks.
  • Can maintain schema.sql for source control review.
  • Works with multiple languages and databases.
  • Can embed migrations in Go application binaries.

Against

  • Spanner schema dumps are not supported.
  • Schema dumps require database client tools.

The verdict

dbmate combines SQL migrations, rollback tools, and schema snapshots in a standalone command-line utility. Check its database support and the client-tool requirement for schema dumps before choosing it.

Who it suits

dbmate suits developers and teams who want SQL-based migrations across multiple languages and supported databases. It is also an option for Go applications that need embedded migrations.

Plans and prices

dbmate

Free

Open-source database migration tool · no paid SaaS upsell stated

Every plan, in full

On the record

Additional database support
The README also documents BigQuery connections and Spanner support limited to databases using the PostgreSQL dialect.github.com · read 5 Oct 2026
Commands
Its commands include creating, applying, and rolling back migrations, checking migration status, dumping or loading a schema, and waiting for a database server.github.com · read 5 Oct 2026
Configuration
Dbmate reads DATABASE_URL by default and has built-in support for loading environment variables from a .env file.github.com · read 5 Oct 2026
Databases
The README lists MySQL, MariaDB, PostgreSQL, SQLite, and ClickHouse as supported databases.github.com · read 5 Oct 2026
Database support
The README lists MySQL, MariaDB, PostgreSQL, SQLite, and ClickHouse as supported databases.github.com · read 5 Oct 2026
Distribution
The README documents installation through NPM, Homebrew, Scoop, a Linux binary, and Docker images published to GitHub Container Registry.github.com · read 5 Oct 2026
Embedding
Dbmate can be used as a library in Go applications, and migrations can be embedded into an application binary using Go embed.github.com · read 5 Oct 2026
Framework support
It is a standalone command-line tool usable with Go, Node.js, Python, Ruby, PHP, Rust, C++, or other languages and frameworks.github.com · read 5 Oct 2026
Language independent
The standalone command line tool can be used with Go, Node.js, Python, Ruby, PHP, Rust, C++, or other languages and frameworks.github.com · read 5 Oct 2026
License
The repository includes an MIT license.github.com · read 5 Oct 2026
Limit
The README says Spanner schema dumps are not supported because pg_dump uses functions Spanner does not provide.github.com · read 5 Oct 2026
Migration transactions
Migrations run atomically inside a transaction by default when the database supports transactions, and migration blocks can opt out.github.com · read 5 Oct 2026
Purpose
Dbmate is a database migration tool that keeps database schemas in sync across developers and production servers.github.com · read 5 Oct 2026
SaaS
The README says dbmate does not try to upsell users on a SaaS service.github.com · read 5 Oct 2026
Schema snapshots
Dbmate can keep a schema.sql dump updated for review in source control; dumping relies on database client tools such as pg_dump, mysqldump, or sqlite3.github.com · read 5 Oct 2026
Schema tracking
Dbmate can save a schema.sql file so schema changes can be diffed in Git.github.com · read 5 Oct 2026
Security and company details
The opened README and repository page do not state security certifications, support terms, company headquarters, or a founding date.github.com · read 5 Oct 2026
Security page
The repository's GitHub Security page is available, but the opened page does not state a security or compliance certification.github.com · read 5 Oct 2026

Alternatives to dbmate

Every alternative, ranked