Skip to content
SPECIFICTION
Get listed

Goose vs pgroll

Goose

pressly.github.io

pgroll

pgroll.com

Side by side

FigureGoosepgroll
Price fromFreeFree
Free planYesYes
Free trial——
Open source—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
APIYes—
Self-hostedYesYes
Plans published12
Spec score · Database Migration Tools8.3 (#8)8.5 (#7)
LicenseThe GitHub repository states that Goose is licensed under the MIT License.The repository is licensed under Apache License 2.0.
PlatformsThe installation guide documents prebuilt or source installation for macOS, Linux, and Windows.Prebuilt binaries are available for Linux, macOS, and Windows; installation is also documented through Homebrew and from source.
PurposeGoose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.pgroll is an open-source command-line tool for safe, reversible PostgreSQL schema migrations that keep multiple schema versions available simultaneously.

Plans

Goose

  • GooseFree

Goose pricing →

pgroll

  • Open sourceFree
  • Open-sourceFree

pgroll pricing →

In their own words

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

pgroll

pgroll is an open-source command-line tool for PostgreSQL schema migrations that keeps old and new schema versions available while applications move between them. Its expand/contract workflow lets clients choose a version through PostgreSQL's search_path. The project describes migrations as zero-downtime and says it applies changes without locking the database; it can also backfill columns automatically when needed. For breaking changes, pgroll builds virtual schemas from views over physical tables and uses triggers to carry writes between old and new columns. Active migrations can be rolled back to the previous schema version. It supports PostgreSQL 14 and later, including RDS and Aurora, and is available for Linux, macOS, and Windows or self-hosting. It can convert SQL generated by ORMs, with examples for Alembic, Django, and Drizzle, though manual data migrations and SQL consolidation may be needed. On PostgreSQL 14, its versioned views do not respect row-level security policies, which can make it a poor choice for RLS users on that version. The project is licensed under Apache License 2.0.

Visit pgroll.com