Skip to content
SPECIFICTION
Get listed

Doctrine Migrations vs Goose

Doctrine Migrations

doctrine-project.org

Goose

pressly.github.io

Side by side

FigureDoctrine MigrationsGoose
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
Windows—Yes
macOS—Yes
LinuxYesYes
API—Yes
Self-hostedYesYes
Plans published11
Spec score · Database Migration Tools8.5 (#6)8.3 (#8)
LicenseThe GitHub repository identifies the project as MIT licensed.The GitHub repository states that Goose is licensed under the MIT License.
Migration controlsUsers can inspect migration status, run dry runs, execute migrations, and revert them from the console.The CLI can apply, roll back, redo, reset, inspect, and version database migrations.
PurposeDoctrine Migrations adds database schema versioning and helps deploy schema changes.Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.

Plans

Doctrine Migrations

  • Doctrine MigrationsFree

Doctrine Migrations pricing →

Goose

  • GooseFree

Goose 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

Goose

Goose is a free, open-source database migration tool for managing schema changes through incremental SQL files and Go functions. It is available as both a command-line utility and a library. The CLI can apply, roll back, redo, reset, inspect, and version migrations, with documented drivers for ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB. SQL migration files use an up annotation and may include a down annotation; filenames can use timestamps or sequential numbers. Statements in a migration file run in one transaction by default, with an annotation for running them outside one. Go migration functions can use a transaction when given a transaction argument. Other listed capabilities include embedded and out-of-order migrations, data seeding, and environment variable substitution in SQL migrations. For library use, a provider accepts a database dialect, connection, migration filesystem, and optional configuration. The provider does not lock the database by default, so callers must arrange safe concurrent migrations or configure a session locker.

Visit pressly.github.io