A database migration tool for Go that supports SQL migrations and Go functions, compatible with multiple databases.
Goose is a database migration tool designed for Go applications, providing both a CLI and a library to manage database schema changes through incremental SQL or Go-based migrations. It solves the problem of versioning and applying database changes consistently across different environments and database systems.
Go developers and teams who need a reliable, database-agnostic migration tool to manage schema changes in applications using PostgreSQL, MySQL, SQLite, or other supported databases.
Developers choose Goose for its simplicity, support for both SQL and Go migrations, compatibility with multiple databases, and hybrid versioning system that prevents conflicts in collaborative development.
A database migration tool. Supports SQL migrations and Go functions.
Supports a wide range of databases including PostgreSQL, MySQL, SQLite, Spanner, and more, as listed in the README's driver examples.
Allows both SQL migrations and Go-based migrations for complex logic, enabling programmatic changes like data transformations.
Integrates with Go's embed package to compile migration files into binaries, simplifying deployment by eliminating external file dependencies.
Uses timestamps for development and sequential numbering for production to prevent conflicts in team environments, as recommended in the README.
Go migrations require building a custom goose binary, adding setup overhead compared to drop-in SQL-only tools.
Certain SQL operations like CREATE DATABASE cannot run in transactions without explicit annotations, complicating migration writing.
Requires enabling parseTime and multiStatements flags for MySQL, which can lead to errors if missed, as noted in the status command section.
Database migrations. CLI and Golang library.
World's most advanced database DevSecOps solution for Developer, Security, DBA and Platform Engineering teams. The GitHub/GitLab for database DevSecOps.
Declarative schema migrations with schema-as-code workflows
🚀 A lightweight, framework-agnostic database migration tool.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.