Skip to content
SPECIFICTION
Get listed

db-migrate vs Goose

db-migrate

github.com

Goose

pressly.github.io

Side by side

Figuredb-migrateGoose
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 (#5)8.3 (#8)
LicenseThe project is distributed under the MIT License.The GitHub repository states that Goose is licensed under the MIT License.
Purposedb-migrate describes itself as a database migration framework for Node.js.Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.

Plans

db-migrate

  • db-migrateFree

db-migrate pricing →

Goose

  • GooseFree

Goose pricing →

In their own words

db-migrate

db-migrate is a free, open-source database migration framework for Node.js applications. It runs on Linux and can be self-hosted. The command-line interface provides up, down, reset, create, and db commands for applying, rolling back, resetting, creating, and managing migrations. Supported databases listed by the project include MySQL, PostgreSQL, sqlite3, MongoDB, and CockroachDB, with database drivers installed separately. Migration files support callback-based or promise-based interfaces, while the --sql-file option creates separate SQL files for migration-up and migration-down statements. Applied migrations are recorded in a migrations table. Environment settings can come from database.json, with command-line choices for the environment and configuration file. Database usernames and passwords can reference environment variables. Global and local npm installation are documented. Node.js 24 and newer are officially supported; package metadata specifies version 8.0.0 or later. Rollback is supported, and the format is mixed.

Visit github.com

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