Skip to content
SPECIFICTION
Get listed

dbmate vs Doctrine Migrations

dbmate

github.com

Doctrine Migrations

doctrine-project.org

Side by side

FiguredbmateDoctrine Migrations
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYes—
macOSYes—
LinuxYesYes
Self-hostedYesYes
Plans published11
Spec score · Database Migration Tools8.6 (#3)8.5 (#6)
LicenseThe repository includes an MIT license.The GitHub repository identifies the project as MIT licensed.
PurposeDbmate is a database migration tool that keeps database schemas in sync across developers and production servers.Doctrine Migrations adds database schema versioning and helps deploy schema changes.
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 documentation directs users to the Doctrine mailing list, Slack, GitHub bug reporting, and Stack Overflow for help.
TransactionsMigrations run atomically inside a transaction, with per-migration transaction behavior configurable in migration files.The documentation covers all-or-nothing transactions and using or not using transactions.

Plans

dbmate

  • dbmateFree

dbmate pricing →

Doctrine Migrations

  • Doctrine MigrationsFree

Doctrine Migrations 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

Doctrine Migrations

Doctrine Migrations is a free, self-hosted PHP library for versioning database schemas and deploying changes in a reviewable, testable way. Built on Doctrine DBAL and ORM, it can generate migration code by comparing a database schema with ORM mapping information, with documentation covering diffing with or without the ORM. Console commands show migration status, perform dry runs, execute one or more migrations, and revert changes. Generated SQL can be written to a file with --write-sql instead of applied directly, while --no-interaction supports unattended execution. Transaction controls cover all-or-nothing behavior and running with or without transactions. Install it through Composer, which provides a doctrine-migrations console application, or download a PHAR from GitHub releases. Doctrine lists integrations for Symfony, Zend, Laravel, Silex, and Nette. Version 3.9.8 is stable; 3.8 and earlier are unmaintained.

Visit doctrine-project.org