Skip to content
SPECIFICTION
Get listed

FluentMigrator vs Goose

FluentMigrator

fluentmigrator.github.io

Goose

pressly.github.io

Side by side

FigureFluentMigratorGoose
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hostedYesYes
Plans published11
Spec score · Database Migration Tools8.2 (#10)8.3 (#8)
Database supportThe documentation lists providers including SQL Server, PostgreSQL, MySQL, SQLite, Oracle, Firebird, IBM DB2, SAP HANA, Snowflake, and Redshift.The documented CLI drivers include ClickHouse, MSSQL, MySQL, PostgreSQL, SQLite, Turso, Vertica, and YDB.
LicenseThe project is released under the Apache-2.0 License.The GitHub repository states that Goose is licensed under the MIT License.
PurposeFluentMigrator is a .NET framework for managing database schema changes through version-controlled C# migrations.Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions.

Plans

FluentMigrator

  • FluentMigratorFree

FluentMigrator pricing →

Goose

  • GooseFree

Goose pricing →

In their own words

FluentMigrator

FluentMigrator is a free .NET framework for managing database schema changes with version-controlled C# migrations. Its fluent C# API defines Up and Down methods for applying changes and rolling them back. The project lists providers for SQL Server, PostgreSQL, MySQL, SQLite, and Oracle, among others; provider packages are selected separately. Migrations can run inside an application, with the Migrate.exe console tool, or through dotnet-fm, which integrates with the cross-platform .NET CLI. By default, FluentMigrator creates a VersionInfo table to record completed migrations. Command-line runners can preview generated SQL without executing it, and the CLI can validate migrations before execution. The project documents .NET dependency injection integration and CI/CD examples for GitHub Actions, Azure DevOps, and Jenkins. The Quick Start calls for .NET 8.0 or later, a supported database, and basic C# and database knowledge. FluentMigrator is released under the Apache-2.0 License, with releases distributed through NuGet.

Visit fluentmigrator.github.io

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