EVERYTHING XIAOMI
Get listed

Goose

Goose is a database migration tool for managing schema changes through incremental SQL files and Go migration functions.

Place
#8 of 32
Score
6.4
Goose's website

What Goose is

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

Good

  • Supports SQL migrations and Go migration functions
  • CLI can apply and roll back migrations
  • Lists drivers for eight database systems
  • Supports embedded migrations and data seeding
  • Free and MIT-licensed

Watch out

  • Provider does not lock the database by default
  • Caller must match dialect to database driver
  • ClickHouse support has deployment-mode caveats
  • Building from source requires Go 1.16 or later

Who it suits

Goose may suit developers who want to manage database schema changes from a command-line tool or integrate migration handling through a library. Teams using the provider need to arrange safe concurrent migrations themselves unless they configure a session locker.

Verdict

Goose offers migration workflows through both a CLI and a library, with SQL and Go migration formats. Its default lack of database locking means callers must plan for safe concurrent runs.

Plans and prices

From Goose's own pricing page, checked 7 Oct 2026.

All about pricing
PlanPriceWhat it gives you
GooseFreeOpen-source database migration tool

The facts

Each one read from Goose's own pages, with the date it was checked.

What it does

CLI and library
The project is both a command-line utility and a library.checked 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.checked 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.checked 7 Oct 2026
Database driver responsibility
When using the provider, callers are responsible for matching the SQL dialect to the database driver.checked 7 Oct 2026
Database support
The documented CLI drivers include ClickHouse, MSSQL, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB.checked 7 Oct 2026
Driver caveat
The README warns that ClickHouse support is limited to some deployment modes and may require careful configuration or workarounds.checked 7 Oct 2026
Go migrations
Go migration functions can run within a SQL transaction when given a transaction argument.checked 7 Oct 2026
Go requirement
Building from source requires Go 1.16 or later.checked 7 Oct 2026
Library configuration
A Goose provider accepts a database dialect, a database connection, a filesystem for migration files, and optional configuration.checked 7 Oct 2026
Library integration
The Goose provider accepts a database connection and filesystem abstraction, including directory or embedded filesystems.checked 7 Oct 2026
License
The GitHub repository states that Goose is licensed under the MIT License.checked 7 Oct 2026
Migration controls
The CLI can apply, roll back, redo, reset, inspect, and version database migrations.checked 7 Oct 2026
Migration formats
It manages database schemas with incremental SQL changes and Go migration functions.checked 7 Oct 2026
Migration options
The project README lists embedded migrations, out-of-order migrations, data seeding, and environment variable substitution in SQL migrations.checked 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.checked 7 Oct 2026
Purpose
Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.checked 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.checked 7 Oct 2026
Supported database drivers
The CLI lists ClickHouse, Microsoft SQL Server, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB drivers.checked 7 Oct 2026

Where it runs

Platforms
The installation guide documents prebuilt or source installation for macOS, Linux, and Windows.checked 7 Oct 2026

Alternatives to Goose

All alternatives
  1. 1Atlas logo

    Atlas

    Free planOpen sourceWebAPILinuxmacOS
    8.3From $39 a month
  2. 2

    DeepFilterNet

    Free planOpen sourceAPILinuxmacOSSelf-hosted
    7.6Free plan
  3. 3

    pgroll

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.3Free plan
  4. 4Skeema logo

    Skeema

    Free planLinuxmacOSWindows
    6.9From $649 a year
  5. 5Bytebase Enterprise logo

    Bytebase Enterprise

    Free planWebAPISelf-hosted
    6.8From $20 a month
  6. 6

    Sqitch

    Free planLinuxmacOSSelf-hostedWindows
    6.7Free plan