MigraDiff – maintained fork of migra (PostgreSQL schema diff)
Keeps the abandoned migra tool alive, but Atlas and Flyway already own this space.
Continuously sync MySQL schema definitions to PostgreSQL via a declarative DSL.
Continuous schema sync beats pgloader's one-shot approach for long migrations.
Backend engineers migrating from MySQL to PostgreSQL
pgloader · AWS DMS · Debezium
All off them, as far as I have seen, is designed to be a single shot schema migration tool, so if MySQL schema was changed due to continuous development after pgloader was executed, developers have to sync them to PostgresQL in some kind of manual, or custom-made script. (custom-made script seems like the most common way when I searched it online) Another aspect of the existing ones is that how the schema is migrated tends to be a black box, and the configuration file didn't seem fully customizable to me. For example, you cannot do something like excluding an index for a certain table.
This tool can resolve both cases.
How it works consists of 3 steps:
1. parse MySQL schema into ruby-handleable objects by using rails ActiveRecord
2. combine 1., pre-defined general migration rules, and user-defined dsl to generate a PostgresQL schemafile
3. apply 2. using ridgepole(a common rails schema management tool in japan) to PostgresQL, which checks the diff between 2. and the actual PostgresQL schema and generates/runs the exact DDL necessary to apply
Keeps the abandoned migra tool alive, but Atlas and Flyway already own this space.
Uses PostgreSQL's own parser when sqldef hits parsing limits.
Drop-in migra replacement with migrations folder support and AI explanations.
Offline schema snapshots keep AI agents from wrecking your production database.
GitHub integration fetches migrations without CI/CD job overhead.
Query-as-pipeline is neat, but Fivetran and Airbyte already own this space.