Skip to content
SPECIFICTION
Get listed

Doctrine Migrations vs golang-migrate

Doctrine Migrations

doctrine-project.org

golang-migrate

github.com

Side by side

FigureDoctrine Migrationsgolang-migrate
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
Windows—Yes
macOS—Yes
LinuxYesYes
Self-hostedYesYes
Plans published11
Spec score · Database Migration Tools8.5 (#6)7.8 (#15)
LicenseThe GitHub repository identifies the project as MIT licensed.The project is distributed under the MIT License, which requires retaining the copyright and permission notices.
PurposeDoctrine Migrations adds database schema versioning and helps deploy schema changes.golang-migrate reads database migrations from sources and applies them to a database in order.
Security reportingDoctrine asks security researchers to report issues privately by email rather than through GitHub's public issue tracker.The security policy asks reporters to start a GitHub security advisory and suggest potential impact and urgency.

Plans

Doctrine Migrations

  • Doctrine MigrationsFree

Doctrine Migrations pricing →

golang-migrate

  • Open sourceFree

golang-migrate pricing →

In their own words

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

golang-migrate

golang-migrate reads database migrations from a source and applies them to a database in sequence. Each logical migration has an up file and a down file, and the tool can run as a command-line program or be imported as a Go library. Listed database drivers include PostgreSQL, MySQL/MariaDB, SQLite, MongoDB, Neo4j, CockroachDB, and Google Cloud Spanner. Migration sources include local files, embedded Go data, GitHub, GitLab, Bitbucket, AWS S3, and Google Cloud Storage. The CLI handles Ctrl+C gracefully and does not use config search paths, config files, or automatic environment-variable injection. The library uses io.Reader streams for low memory overhead, is described as thread-safe without goroutine leaks, and supports controlled stopping through a GracefulStop channel to help prevent database corruption. The project documents running the CLI in Docker with a mounted migration directory. golang-migrate is open source under the MIT License and costs nothing. The security policy marks master and 4.x as supported; 3.x and earlier are unsupported.

Visit github.com