- Database migration tools and the job each one does
- Ten schema change and migration tools
- Changing a schema versus moving a database
- Governance for teams that change production
- Small tools for one database or one language
- Questions before you migrate a database
- My advice for picking a database migration tool
- Frequently asked questions
The best database migration tool depends on which of two jobs you mean. One is changing a schema over time, using versioned scripts or declarative files kept in a repo. The other is moving a whole database from one engine to another, or into a cloud. The tools here are built for one job or the other, so start there.
Type database migration tools into a search bar and you'll get two lists mashed together: tools for changing a schema and tools for moving a whole database somewhere new. They're different jobs, and the tool pages say so if you read past the headline.
This list covers ten tools, using only what each one's own website or project page says, read on 2 Nov 2026 (as of Nov 2026). It's alphabetical and in no particular order. It's about schema change and moves between engines, not pipelines that sync data between SaaS apps, and there are no speed or downtime claims here.
Database migration tools and the job each one does
| Tool | Type | Good for |
|---|---|---|
| Atlas | Schema migration and management as code | Guides for CI/CD, ORMs and Kubernetes |
| AWS Database Migration Service | Managed cloud database migration | Moving databases into AWS |
| Bytebase | Database change management and access control | Approval flows, audit trails and just-in-time access |
| dbmate | Lightweight database migration tool | Plain SQL migrations, framework-agnostic |
| Flyway | Migrations and governed change from Redgate | Versioned migrations with policy checks |
| goose | Migration tool for SQL and Go | Incremental SQL changes or Go functions |
| Liquibase | Database change governance platform | Change automation, governance and intelligence |
| pgloader | Open-source PostgreSQL migration tool | One command into PostgreSQL |
| Skeema | Declarative schema management for MySQL and MariaDB | CREATE statements kept in a repo |
| Sqitch | Database-native change management | Change management without an app framework |
Ten schema change and migration tools
Atlas
Best for: Managing schema changes as code, with guides for wiring it into CI/CD, integrating with any ORM and deploying on Kubernetes.
AWS Database Migration Service
Best for: Moving a database into AWS with a managed migration service, rather than a tool you run yourself.
Bytebase
Best for: Teams and AI agents that need to change, access and audit databases, with approval flows, data masking and just-in-time access.
dbmate
Best for: Writing schema migrations in plain SQL with a lightweight tool that supports MySQL, MariaDB, PostgreSQL, SQLite and ClickHouse.
Flyway
Best for: Running versioned database migrations with schema drift detection, generated rollback scripts and native CI/CD integration.
goose
Best for: Go developers managing a schema through incremental SQL changes or Go functions, with timestamped migrations by default.
Liquibase
Best for: Automating database change through CI/CD and developer self-service, then enforcing policies across every team and pipeline.
pgloader
Best for: Moving a whole database into PostgreSQL in a single command, with the tool translating the catalog and applying casting rules as it goes.
Skeema
Best for: Teams on MySQL or MariaDB who want declarative schema management from an open source CLI tool.
Sqitch
Best for: Developers who want database-native change management that works without an app framework, built for dependable deployment.
Changing a schema versus moving a database
Here's what's easy to miss: 'database migration' covers two different jobs. The first is changing a schema over time. Atlas describes 'database schema migration & management, as code', Sqitch offers 'sensible database-native change management', and goose lets you manage your schema 'by creating incremental SQL changes and/or Go functions'.
The second job is moving a whole database. pgloader promises to 'migrate to PostgreSQL in a single command', and a cloud provider on this list runs a managed migration service for moving databases into its own cloud. Neither is built to manage the small schema changes your app makes week to week.
- Versioned migrations: timestamped or sequential scripts applied in order, in SQL or code.
- Declarative schemas: you describe the schema you want and the tool works out the changes.
- Engine-to-engine moves: one database copied into another engine or a cloud service.
Governance for teams that change production
Some tools add approvals and audit on top of migrations. Redgate pitches Flyway as 'database migrations & governed change management', with policy-as-code enforced before merge and a complete audit trail. Liquibase calls itself 'the database change governance platform', and Bytebase lists 'audit trails' and an 'approval flow' alongside just-in-time database access.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Two of these pages now mention AI agents directly: one calls itself the platform for teams and AI agents to change, access and audit databases, and another's headline is about governing every database change, 'human or AI'. If agents are writing your migrations, that's a line worth reading.
Small tools for one database or one language
At the lighter end, Skeema is a 'declarative SQL-based schema management utility' for MySQL and MariaDB: you track the schema you want in a repo of CREATE statements, and the tool works out how to apply the changes. dbmate calls itself 'a lightweight, framework-agnostic database migration tool' and uses plain SQL for writing migrations.
Those suit teams that want a migration tool without a whole platform around it. If your app already uses an ORM, one schema-as-code tool here says it integrates with any ORM, and another lets Go developers write migrations as Go functions.
Questions before you migrate a database
- Am I changing a schema over time, or moving a database to a new engine?
- Which database engines do I need the tool to support?
- Do I want versioned scripts, or a declarative schema the tool compares against?
- Do changes need approvals and an audit trail before they reach production?
- Will the tool run in my CI/CD pipeline?
- Am I moving into a cloud provider's own database service?
Do you make a database migration or schema change tool? Tool makers can ask to be considered for a featured place on this list.
My advice for picking a database migration tool
Name the job first. If you're changing a schema as your app grows, choose between versioned scripts and a declarative schema, then check the tool supports your engine. If several people or agents touch production, look at the tools with approvals and audit trails. And if you're moving a whole database, use a tool built for that move, and try it on a copy before the real thing.
If you're still choosing where the data will live, read why choosing a good database for your business matters, and for a wider look at the move itself, see my piece on database migration services.
Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.
Frequently asked questions
What's the difference between a schema migration and a database migration?
On the tool pages here, schema migration means changing a database's structure over time, through versioned SQL changes, code or declarative files. Moving a database means copying it into a different engine or a cloud service, such as moving into PostgreSQL in a single command.
Which of these tools work with PostgreSQL?
One is built to move databases into PostgreSQL, and a lightweight migration tool here lists PostgreSQL support beside MySQL, MariaDB, SQLite and ClickHouse. Check each project's docs for the version you run before you commit.
Which tools are for MySQL and MariaDB?
One tool here is built for MySQL and MariaDB only, and its page says its open source CLI tool supports all modern versions of both. A lightweight migration tool on this list also lists MySQL and MariaDB among its supported databases.
Do any of these tools add approvals and audit trails?
Yes. One lists audit trails, an approval flow and policy enforcement, one calls itself a database change governance platform, and one lists policy-as-code enforced before merge and a complete audit trail.
Can I write migrations in code instead of SQL?
One tool here lets you manage a schema with incremental SQL changes or Go functions. Another manages the schema as code and says it integrates with any ORM, so you can keep working with the framework you've got.
Is a SaaS data pipeline the same as a database migration tool?
Not on this list. These tools change a database's schema or move a database to a new engine. Tools that sync data between SaaS apps are a different category, so they're left out here.


