MySQL → PostgreSQL migration

Move a MySQL schema to PostgreSQL — the structure, done for you.

DiffyPick compares a MySQL database against a PostgreSQL one and generates the PostgreSQL DDL to recreate the table and column structure. It takes the tedious first mile of the migration off your plate.

The tedious first mile

MySQL to PostgreSQL is one of the most common migrations — and the schema is the fiddly part: mapping types, reconciling identifier casing, turning AUTO_INCREMENT into sequences or identity columns.

DiffyPick does that mapping automatically and shows you exactly what it will create, before anything runs.

How it works

  1. Connect both sides

    Point DiffyPick at your MySQL source and a PostgreSQL target — a fresh, empty database is fine.

  2. Compare

    DiffyPick maps MySQL types to PostgreSQL equivalents and lists every table and column as a diff.

  3. Review and generate

    Preview the PostgreSQL DDL statement by statement, pick what to apply, then export it or run it.

What converts

Tables and columns, with types mapped to PostgreSQL: TINYINT to smallint or boolean, DATETIME to timestamp, UNSIGNED widened, AUTO_INCREMENT to identity or a sequence.

Primary keys, indexes and foreign keys come across as part of the structure.

Engine-specific objects — stored routines, triggers in MySQL dialect, and the like — are out of scope. DiffyPick moves the structure, not the logic.

What to keep in mind

Get a running start on your migration.

Free for SQLite; connect MySQL and PostgreSQL on a paid plan. No account needed to start.