awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Go Database Migration Libraries

Ranking updated Jul 13, 2026

For a database migration tool for Go, the first results are mattes/migrate (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), pressly/goose (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) and golang-migrate/migrate (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). amacneil/dbmate and liquibase/liquibase round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

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.

Go Database Migration Libraries

Find the best repos with AI.We'll search the best matching repositories with AI.
  • mattes/migratemattes avatar

    mattes/migrate

    2,282View on GitHub↗

    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.

    GoDatabase Driver AbstractionsDatabase VersioningDatabase Schema Migrations
    View on GitHub↗2,282
  • pressly/goosepressly avatar

    pressly/goose

    10,197View on GitHub↗

    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.

    GoDatabase VersioningSQL Migration WorkflowsDatabase Schema Migrations
    View on GitHub↗10,197
  • golang-migrate/migrategolang-migrate avatar

    golang-migrate/migrate

    18,118View on GitHub↗

    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.

    GoDatabase VersioningDatabase MigrationsDatabase Schema Migrations
    View on GitHub↗18,118
  • amacneil/dbmateamacneil avatar

    amacneil/dbmate

    6,954View on GitHub↗

    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.

    GoDatabase VersioningDatabase MigrationsDatabase Schema Migrations
    View on GitHub↗6,954
  • liquibase/liquibaseliquibase avatar

    liquibase/liquibase

    5,527View on GitHub↗

    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.

    JavaDatabase VersioningSchema VersioningDatabase Engine Support
    View on GitHub↗5,527
  • ariga/atlasariga avatar

    ariga/atlas

    8,096View on GitHub↗

    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.

    GoDatabase Migrations
    View on GitHub↗8,096
  • uptrace/bunuptrace avatar

    uptrace/bun

    4,867View on GitHub↗

    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.

    GoSchema VersioningDatabase Migration Tools
    View on GitHub↗4,867
  • rubenv/sql-migraterubenv avatar

    rubenv/sql-migrate

    3,411View on GitHub↗

    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.

    GoDatabase Migration ToolsDatabase MigrationsDatabase Tools
    View on GitHub↗3,411
  • go-gormigrate/gormigratego-gormigrate avatar

    go-gormigrate/gormigrate

    1,164View on GitHub↗

    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.

    GoDatabase Migration ToolsDatabase MigrationsDatabase Tools
    View on GitHub↗1,164
  • db-migrate/node-db-migratedb-migrate avatar

    db-migrate/node-db-migrate

    2,343View on GitHub↗

    This project is a database migration framework designed to manage and execute versioned schema changes across multiple relational and document-oriented database systems. It functions as a utility for tracking and applying structural modifications through sequential migration scripts, ensuring that database schemas remain consistent across development, testing, and production environments. The framework utilizes a driver-based abstraction layer that decouples migration logic from specific database engines, allowing for a unified interface when performing schema operations. It maintains state t

    This is a database migration tool, but it is built for the Node.js ecosystem rather than the Go language requested, making it a mismatch for a Go-specific development workflow.

    JavaScriptDatabase Driver AbstractionsDatabase VersioningDatabase Migrations
    View on GitHub↗2,343
  • doctrine/migrationsdoctrine avatar

    doctrine/migrations

    4,770View on GitHub↗

    This project is a database version control system and schema evolution manager designed to track and apply incremental changes to database structures. It serves as a tool for versioning SQL database migrations using both programmatic PHP classes and SQL scripts. The system is designed specifically for integration with the Doctrine Object Relational Mapper for PHP, allowing database schemas to evolve incrementally without data loss through reversible migration steps. It covers capabilities for automated database migrations, environment synchronization, and schema versioning. These features fa

    This is a database migration tool designed specifically for the PHP ecosystem and the Doctrine ORM, making it incompatible with the Go applications requested.

    PHPDatabase MigrationsDatabase Schema Version ControlSQL Migration Frameworks
    View on GitHub↗4,770
  • flyway/flywayflyway avatar

    flyway/flyway

    9,844View on GitHub↗

    Flyway is a database schema versioning tool and SQL migration orchestrator. It applies version-controlled schema changes to relational databases using SQL scripts and Java Database Connectivity to ensure environments remain consistent and reproducible. The tool tracks applied migration scripts in a dedicated metadata table to determine which updates require execution. It supports the synchronization of schema versions across multiple different database engines and provides integration for build systems and application frameworks to automate updates during software release processes. Capabili

    While this is a robust and industry-standard database migration tool, it is a Java-based application rather than a native Go library, meaning it lacks the programmatic Go API required for direct integration into Go applications.

    JavaSQL Migration WorkflowsDatabase MigrationsDatabase Schema Migrations
    View on GitHub↗9,844
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
mattes/migrate2.3KGoNOASSERTIONJun 16, 2018
pressly/goose10.2KGootherFeb 20, 2026
golang-migrate/migrate
18.1K
Go
other
Dec 14, 2025
amacneil/dbmate7KGoMITJun 12, 2026
liquibase/liquibase5.5KJavaNOASSERTIONJun 16, 2026
ariga/atlas8.1KGoapache-2.0Feb 7, 2026
uptrace/bun4.9KGoBSD-2-ClauseJun 17, 2026
rubenv/sql-migrate3.4KGoMITJun 4, 2026
go-gormigrate/gormigrate1.2KGoMITMay 26, 2026
db-migrate/node-db-migrate2.3KJavaScriptNOASSERTIONAug 4, 2025

Related searches

  • an ORM for Go that handles migrations
  • a tool for managing database schema migrations
  • a tool to version my database schema
  • a declarative database schema tool
  • an ORM and query builder for Go
  • a testing framework for Go applications
  • a library for building GraphQL in Go
  • a database library for Swift applications