FREEDOM251

Freedom251 › Database Migration Tools

Goose

Free plan APILinuxMacSelf-hostedWindows

Visit Goose Alternatives Pricing

Goose's own site

What Goose is

Goose is an open-source database migration tool for managing schema changes with incremental SQL updates and Go migration 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. Its CLI can apply, roll back, redo, reset, inspect, and version migrations. 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 available to run them outside one. Go migration functions can run within a SQL transaction when given 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 in SQL migrations. As a library, Goose uses a provider configured with a database dialect, connection, filesystem, and optional settings. By default, the provider does not lock the database during migrations, so safe coordination is the caller’s responsibility.

Who it suits

Goose suits developers who need command-line or library-based database migrations and can coordinate safe migration runs. It supports SQL and Go migration approaches across its listed database drivers.

What it does well

  • CLI can apply, roll back, and inspect migrations.
  • Supports SQL files and Go migration functions.
  • Lists drivers for eight database systems.
  • Offers embedded and out-of-order migrations.

What to know first

  • Provider does not lock migrations by default.
  • Building from source requires Go 1.16 or later.
  • ClickHouse support has deployment-mode caveats.

Limits

The provider does not lock the database during migrations by default, so callers must ensure runs are safe or configure a session locker. ClickHouse support is limited to some deployment modes and may require careful configuration or workarounds.

Plans

PlanBilled and limitsPrice
GooseOpen-source database migration toolFree

As pressly.github.io lists them, read 7 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the Goose website.
  2. Choose the command-line utility or the Go library.
  3. For CLI use, select a listed database driver and prepare migration files with an up annotation.
  4. For library use, configure a database dialect, connection, migration filesystem, and optional settings.
  5. Coordinate safe migration runs or configure a session locker before concurrent runs.

Verdict

Goose provides schema migration controls in both a CLI and a library, with a broad documented driver list. Teams using the provider need to arrange safe concurrency unless they configure a session locker.

Questions

How much does Goose cost?

Goose is free and open source. Its listed plan is free.

Which databases does the CLI support?

The listed drivers are ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB.

Can Goose roll back migrations?

Yes. The CLI can roll back and redo migrations, as well as apply, reset, inspect, and version them.

What migration formats does Goose support?

It manages schemas with incremental SQL changes and Go migration functions. SQL migration files use an up annotation and may include a down annotation.

Is Goose open source?

Yes. The GitHub repository states that Goose is licensed under the MIT License.

What platforms are listed for Goose?

The listed platforms are API, Linux, macOS, self-hosted, and Windows.

Facts from Goose's own pages

CLI and library
The project is both a command-line utility and a library. · pressly.github.io, 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, 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, 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, 7 Oct 2026
Database support
The documented CLI drivers include ClickHouse, MSSQL, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB. · pressly.github.io, 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, 7 Oct 2026
Go migrations
Go migration functions can run within a SQL transaction when given a transaction argument. · pressly.github.io, 7 Oct 2026
Go requirement
Building from source requires Go 1.16 or later. · pressly.github.io, 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, 7 Oct 2026
Library integration
The Goose provider accepts a database connection and filesystem abstraction, including directory or embedded filesystems. · pressly.github.io, 7 Oct 2026
License
The GitHub repository states that Goose is licensed under the MIT License. · github.com, 7 Oct 2026
Migration controls
The CLI can apply, roll back, redo, reset, inspect, and version database migrations. · pressly.github.io, 7 Oct 2026
Migration formats
It manages database schemas with incremental SQL changes and Go migration functions. · pressly.github.io, 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, 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, 7 Oct 2026
Platforms
The installation guide documents prebuilt or source installation for macOS, Linux, and Windows. · pressly.github.io, 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, 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, 7 Oct 2026
Supported database drivers
The CLI lists ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB drivers. · pressly.github.io, 7 Oct 2026

Where Goose stands on Freedom251

Look at these too