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

  1. Home
  2. Database Migration Tools
  3. Goose

Goose

What it is

Goose is a free, open-source database migration tool for managing schema changes through incremental SQL migrations and Go functions. It is available as both a command-line utility and a library, with platforms listed for API, Linux, macOS, self-hosted use, and Windows. The CLI can apply, roll back, redo, reset, inspect, and version migrations. SQL files use an up annotation and may include a down annotation; filenames can be timestamped or sequentially numbered. Migration statements run in one transaction by default, with an annotation to run them outside one. Go migration functions can run within a SQL transaction when passed a transaction argument.

The CLI lists drivers for ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB. Other listed options include embedded and out-of-order migrations, data seeding, and environment variable substitution. Library users configure a provider with a dialect, database connection, migration filesystem, and optional settings. Goose is licensed under the MIT License. Its listed plan is free.

For and against

For

  • CLI supports applying, rolling back, and inspecting migrations.
  • SQL and Go migration formats are supported.
  • Lists drivers for eight database systems.
  • Supports embedded migrations and data seeding.
  • Free and open source under the MIT License.

Against

  • Provider does not lock the database by default.
  • ClickHouse support is limited to some deployment modes.
  • Building from source requires Go 1.16 or later.

The verdict

Goose combines a migration CLI with a Go library and supports both SQL and Go migration functions. Callers need to coordinate safe concurrent migrations unless they configure a session locker.

Who it suits

Goose suits developers who want to manage database schema changes from a CLI or integrate migrations through a Go library. It is relevant for teams using one of its listed database drivers or self-hosting their setup.

Plans and prices

Goose

Free

Open-source database migration tool

Every plan, in full

On the record

CLI and library
The project is both a command-line utility and a library.pressly.github.io · read 7 Oct 2026
Concurrency
The provider does not lock the database during migrations by default, so callers must ensure migrations run safely; a session locker can coordinate them.pressly.github.io · read 7 Oct 2026
Concurrency limitation
By default, the provider does not lock the database during migrations, so the caller must ensure migrations are run safely; a session locker can be configured.pressly.github.io · read 7 Oct 2026
Database driver responsibility
When using the provider, callers are responsible for matching the SQL dialect to the database driver.pressly.github.io · read 7 Oct 2026
Database support
The documented CLI drivers include ClickHouse, MSSQL, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB.pressly.github.io · read 7 Oct 2026
Driver caveat
The README warns that ClickHouse support is limited to some deployment modes and may require careful configuration or workarounds.github.com · read 7 Oct 2026
Go migrations
Go migration functions can run within a SQL transaction when given a transaction argument.pressly.github.io · read 7 Oct 2026
Go requirement
Building from source requires Go 1.16 or later.pressly.github.io · read 7 Oct 2026
Library configuration
A Goose provider accepts a database dialect, a database connection, a filesystem for migration files, and optional configuration.pressly.github.io · read 7 Oct 2026
Library integration
The Goose provider accepts a database connection and filesystem abstraction, including directory or embedded filesystems.pressly.github.io · read 7 Oct 2026
License
The GitHub repository states that Goose is licensed under the MIT License.github.com · read 7 Oct 2026
Migration controls
The CLI can apply, roll back, redo, reset, inspect, and version database migrations.pressly.github.io · read 7 Oct 2026
Migration formats
It manages database schemas with incremental SQL changes and Go migration functions.pressly.github.io · read 7 Oct 2026
Migration options
The project README lists embedded migrations, out-of-order migrations, data seeding, and environment variable substitution in SQL migrations.github.com · read 7 Oct 2026
Migration transactions
Statements in a migration file run in one transaction by default, with an annotation to run them outside a transaction.pressly.github.io · read 7 Oct 2026
Purpose
Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.pressly.github.io · read 7 Oct 2026
SQL migration format
SQL migration files use an up annotation and may include an optional down annotation; filenames use a timestamp or sequential number.pressly.github.io · read 7 Oct 2026
Supported database drivers
The CLI lists ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB drivers.pressly.github.io · read 7 Oct 2026

Alternatives to Goose

Every alternative, ranked