For a database migration tool for Go, the strongest matches are mattes/migrate (This project is a comprehensive database migration engine that), pressly/goose (Goose is a production-ready database migration tool that provides) and golang-migrate/migrate (This is a comprehensive database migration tool for Go). amacneil/dbmate and liquibase/liquibase round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best go database migration libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
This project is a database schema migration engine that provides a command-line interface and a library for managing sequential structural changes. It functions as a version control utility for database schemas, enabling the application, reversion, and synchronization of incremental updates across development and production environments. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of relational and non-relational storage systems. It maintains schema consistency by using a dedicated metadata table to track versions and prevent concurrent up
This project is a comprehensive database migration engine that provides both a CLI and a programmatic Go API, supporting versioning and multi-driver migrations exactly as required for production-ready applications.
Goose is a database schema versioning system and SQL migration tool designed for Go applications. It functions as a framework for tracking and applying incremental database changes through versioned SQL scripts, ensuring consistency across different environments. The project distinguishes itself by providing a build-time capability to exclude unused database drivers to optimize binary size and a filesystem abstraction that allows migration scripts to be bundled directly into a compiled executable. It also supports out-of-order execution logic to apply missing scripts that were created after a
Goose is a production-ready database migration tool that provides both a CLI and a programmatic Go API, supporting versioned SQL migrations across multiple database drivers with features like embedded filesystem support.
This project is a command-line utility designed to manage database schema versioning and automate incremental schema updates. It functions as a version control system for database structures, ensuring consistency across environments by tracking applied migrations in a dedicated metadata table and executing scripts in a sequential, reliable manner. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of database engines, including various SQL and distributed cloud databases. It provides robust concurrency control through advisory locking, which prev
This is a comprehensive database migration tool for Go that provides both a CLI and a programmatic API, supporting versioning and multi-driver execution for a wide range of SQL databases.
Dbmate is a framework-agnostic SQL database migration tool used for tracking, applying, and rolling back schema changes to ensure consistent environments. It functions as a database schema versioning tool that manages updates independently of any specific application framework by relying on raw SQL and connection URLs. The project distinguishes itself by offering a container-based approach to database administration, allowing schema updates to be executed via Docker to avoid local binary installations. It also supports embedding migration scripts directly into the compiled binary to eliminate
Dbmate is a production-ready, framework-agnostic migration tool that provides robust schema versioning, raw SQL support, and a CLI, while also allowing for programmatic integration through its Go-based architecture.
Liquibase is a database schema change management tool and version control system designed to track, manage, and apply versioned database modifications. It functions as a SQL migration framework and DevOps automation utility that integrates database deployments into continuous delivery pipelines and build toolchains. The system enables precise rollbacks and drift detection by recording every modification made to a database schema. It supports the definition of database changes through structured changesets in XML, YAML, or JSON, as well as raw SQL scripts, to ensure consistent deployments acro
Liquibase is a robust, industry-standard database migration tool that supports SQL-based versioning and multi-driver connectivity, though it is a Java-based application rather than a native Go library.
Atlas is a SQL database schema management tool and database infrastructure as code framework. It provides a declarative database migration engine that computes the difference between a desired schema state and the current database state to automatically generate the necessary SQL for transitions. The project distinguishes itself through a comprehensive suite of analysis and visualization tools, including a database schema linter that detects destructive changes and data loss risks. It also features a SQL schema visualization tool capable of generating entity-relationship diagrams from extract
Atlas is a production-ready database schema management tool that supports declarative migrations, SQL-based versioning, and a robust CLI, making it a comprehensive solution for managing database changes in Go applications.
Bun is a type-safe object relational mapper for Go that prioritizes SQL-first query construction and result mapping. It functions as a programmable SQL query builder, a database connection manager, and a tool for mapping database tables to Go structs. The project distinguishes itself through a multi-dialect SQL support system, allowing a single codebase to interact with different database engines via a consistent interface. It includes a built-in database observability tool for query interception, distributed tracing, and logging, as well as a schema migration tool for versioning structural c
Bun is a comprehensive ORM that includes a built-in migration tool for schema versioning and SQL-based migrations, making it a capable choice for managing database changes directly within your Go application.
SQL schema migration tool for Go.
This tool provides a robust CLI and programmatic API for managing SQL-based schema migrations in Go, supporting multiple database drivers and versioning out of the box.
Minimalistic database migration helper for Gorm ORM
This is a database migration library specifically designed to work with the Gorm ORM, providing schema versioning and programmatic migration management for Go applications.