Goose vs pt-online-schema-change
Goose
pressly.github.iopt-online-schema-change
docs.percona.comSide by side
| Figure | Goose | pt-online-schema-change |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Database Migration Tools | 8.3 (#8) | 7.5 (#21) |
| License | The GitHub repository states that Goose is licensed under the MIT License. | The program is free software under either the GNU General Public License version 2 or the Perl Artistic License. |
| Purpose | Goose is a database migration tool for managing database schemas with incremental SQL changes and/or Go functions. | pt-online-schema-change alters MySQL table structures without blocking reads or writes by building and populating a copy of the table, then replacing the original. |
Plans
pt-online-schema-change
- Percona Toolkit (includes pt-online-schema-change)Free
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.
pt-online-schema-change
pt-online-schema-change has no write-up on Specifiction yet; its figures are above.