For a tool for managing database schema migrations, the strongest matches are amacneil/dbmate (Dbmate is a framework-agnostic SQL migration CLI that tracks), flyway/flyway (Flyway is a database migration tool that enforces version-controlled) and golang-migrate/migrate (golang-migrate/migrate is a CLI-driven database schema migration tool that). liquibase/liquibase and pressly/goose round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Automated schema versioning and data migration utilities for managing database evolution across development and production environments.
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 framework-agnostic SQL migration CLI that tracks, applies, and rolls back schema changes across multiple databases (PostgreSQL, MySQL, SQLite, etc.), exactly fitting your need for version-controlled migrations, though it requires hand-written SQL rather than auto-generating them.
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
Flyway is a database migration tool that enforces version-controlled schema changes across relational databases, supports multiple database engines, and integrates with build systems and CLIs—ideal for managing schema versions reliably, though it requires manual migration scripts and does not natively auto-generate migrations.
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
golang-migrate/migrate is a CLI-driven database schema migration tool that supports version-controlled updates across many database engines via a pluggable driver layer, squarely matching the category, though it does not explicitly advertise auto-generation or idempotent migrations.
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 full-featured database schema migration tool with version control, rollback, multi-database support, a CLI, and auto-generation of changesets, exactly matching your need to manage and apply schema changes reliably.
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 Go-based CLI tool that manages versioned SQL migrations with rollback support and multiple database drivers, making it a solid fit for versioned schema management — though it lacks built-in auto-generation of migrations from schema diffs.
Bytebase is a database DevSecOps platform and management console designed to orchestrate schema migrations, deployments, and security audits across multiple database engines. It serves as a SQL GitOps tool that synchronizes database states with configurations stored in Git repositories to manage infrastructure as code. The platform distinguishes itself through a multi-database management console that provides a single interface for relational and NoSQL databases. It includes a security layer for role-based access control, database activity auditing, and column-level data masking to protect se
Bytebase is a database migration platform that supports version-controlled migrations via GitOps, multiple database engines, rollback, and includes a CLI, making it a strong fit for reliably managing schema changes across environments.
Prisma is a type-safe database object-relational mapper that uses a declarative schema to map data models to relational and document databases. It provides a unified toolkit for data access, combining a database driver with tools for schema management and record manipulation. The project features a multi-database driver that standardizes interactions across PostgreSQL, MySQL, and MongoDB. It includes a system for tracking and applying structural schema migrations across different environments and a graphical user interface for browsing and editing database records. The system ensures data in
Prisma is a toolkit that includes a dedicated migration system (Prisma Migrate) for versioning and applying schema changes across environments, covering version-controlled migrations, auto-generation, and idempotent application—though rollback support is less direct than standalone migration-only tools.
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
mattes/migrate is a widely-used database migration tool that provides a CLI and Go library, supporting multiple databases and version-controlled migrations—exactly what you need for managing schema changes across environments.
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
Doctrine Migrations is a mature PHP library that provides version-controlled, rollback-capable database schema migrations via CLI, supporting multiple database drivers and auto-generation, exactly matching this search for a database migration tool.
Tortoise ORM is an asynchronous object-relational mapper for Python that mirrors Django's model and queryset API while running on asyncio. It defines database tables as Python classes with typed fields and supports foreign key, many-to-many, and one-to-one relations, providing a chainable query API for filtering, annotating, grouping, and prefetching related objects without blocking the event loop. The ORM includes a built-in migration engine that detects model changes, generates migration files, and applies or reverts schema changes through a command-line tool. It connects to PostgreSQL, MyS
Tortoise ORM includes a built-in migration engine with a CLI that detects model changes, auto-generates migration files, and supports apply/revert across multiple databases, making it a solid database migration tool integrated into an async ORM.
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 database schema management and migration tool that uses a declarative engine to auto-generate SQL from desired vs. current states, covering versioned migrations and multiple drivers — it’s the right category and handles auto-generation and CLI use, though rollback support and idempotency are not explicitly confirmed in the evidence.
Knex is a multi-dialect database client that provides a programmatic SQL query builder, a connection pool manager, and a versioned schema migration tool. It enables programmatic database interaction across multiple SQL engines, including PostgreSQL, MySQL, SQLite3, SQL Server, CockroachDB, and Oracle. The project distinguishes itself through a fluent interface for constructing complex SQL statements and a dedicated framework for database seeding. It utilizes specialized dialects to translate generic query representations into database-specific syntax while maintaining a consistent API across
Knex is a multi-dialect SQL query builder and migration tool with a CLI for versioned, rollback-capable schema migrations across PostgreSQL, MySQL, SQLite, SQL Server, and more—directly matching your need for reliable database schema management, though it lacks automatic schema-diff generation.
Prisma is a database toolkit that provides a unified access layer for interacting with relational and document databases. It centers on a declarative schema modeling approach, where developers define their data structures in a human-readable language. This schema serves as the single source of truth, from which the toolkit automatically generates type-safe database clients that provide compile-time validation and editor autocomplete for all data operations. The project distinguishes itself through a high-performance, Rust-based query engine that handles query planning and connection pooling o
Prisma is a database toolkit that includes Prisma Migrate, offering version-controlled migrations with CLI support, multiple database drivers, and auto-generation from schema changes, directly addressing the need to manage and apply schema changes across environments.
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
db-migrate is a Node.js database migration framework that provides version-controlled schema changes, making it a solid match for managing and applying database migrations across environments.
Standalone Migrations is a Ruby-based utility that provides database schema management and migration capabilities outside of a full web framework. It enables developers to track, version, and apply structural changes to relational databases using standard migration scripts in custom or non-framework environments. The tool distinguishes itself by offering multi-database isolation, allowing for the management of independent data stores within a single project through separate configuration sets and migration paths. It supports dynamic environment-aware configuration, which allows connection set
thuss/standalone-migrations is a gem that brings Rails' version-controlled, rollback-supporting migrations to non-Rails projects, making it a solid fit for managing and reliably applying schema changes, though it is Ruby-only and may not offer auto-generation or a standalone CLI as its primary interface.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| amacneil/dbmate | 7K | Go | MIT | |
| flyway/flyway | 9.8K | Java | Apache-2.0 | |
| golang-migrate/migrate | 18.1K | Go | other | |
| liquibase/liquibase | 5.5K | Java | NOASSERTION | |
| pressly/goose | 10.2K | Go | other | |
| bytebase/bytebase | 14.2K | Go | NOASSERTION | |
| prismagraphql/prisma | 16.4K | Scala | Apache-2.0 | |
| mattes/migrate | 2.3K | Go | NOASSERTION | |
| doctrine/migrations | 4.8K | PHP | MIT | |
| tortoise/tortoise-orm | 5.6K | Python | Apache-2.0 |