Want to convert a PostgreSQL database to MySQL — or MySQL to PostgreSQL? Data Loader can migrate and synchronize data between the two in just a few clicks, with no commands to type and no extra software to install.
Data Loader can convert hundreds or thousands of tables in one go. While converting, it automatically matches source table columns to target table columns and lets you make manual column mappings. You can also specify WHERE conditions to filter rows if needed.
It converts schemas, data, constraints, indexes, and default values in just three steps — without writing a single line of code, automatically choosing appropriate datatypes and widths while still letting you select your own.
Beyond one-time conversion, Data Loader can synchronize data between PostgreSQL and MySQL using its own scheduler, updating, inserting, or deleting rows in target tables to match the source.
With UPSERT, it updates a row if a matching one exists in the destination table, or inserts it if it doesn't. With INSERT, it only inserts the row if a matching one doesn't already exist.
MySQL ↔ PostgreSQL
PostgreSQL to MySQL SQL dump
PostgreSQL ↔ PostgreSQL, MySQL ↔ MySQL, incl. SQL dump
Completely user friendly, with no ODBC drivers or OLE DB providers to install and no code to write.
Select single or multiple tables to transfer, and select or deselect columns while transferring.
Change destination datatypes and widths, with automatic checking for datatype mismatches.
Filter data by specifying WHERE conditions, and migrate millions of rows quickly and reliably.
Migrates all integrity constraints — Primary Key, Unique Keys, NOT NULL, Foreign Keys — plus default values and indexes.
Supports Long, Long RAW, BLOB, CLOB, and picture data types — copy data without writing any code.
Runs on Windows XP through Windows 2019, including Windows 7, 8, and 8.1.
Data Loader can send emails automatically after every session run.
The PostgreSQL to MySQL converter can synchronize data between PostgreSQL and MySQL tables — automatically updating rows if a matching record exists, inserting rows if it doesn't, and deleting rows in the target table that were deleted from the source.

PostgreSQL offers a vast number of datatypes, including custom types created with CREATE TYPE. This flexibility is handy while working in PostgreSQL, but becomes a challenge when migrating to another database like MySQL. Many general PostgreSQL datatypes have a direct MySQL equivalent — here's the mapping:
| PostgreSQL Data Type | Equivalent MySQL Data Type |
|---|---|
| Bytea | BLOB |
| BigInt | BigInt |
| Bool | TinyInt |
| Boolean | TinyInt |
| Char | Varchar |
| TimeStamp | DateTime |
| TimeStampTZ | DateTime |
| Decimal | Decimal |
| Double_Precision | Double |
| Float | Double |
| Float8 | Double |
| Serial | Integer |
| SmallSerial | Integer |
| BigSerial | Integer |
| Integer | Integer |
| Money | Double |
| Numeric | Decimal |
| Real | Double |
| Date | DateTime |
| Time | DateTime |
| SmallInt | SmallInt |
| Text | LongText |
| Varchar | Varchar |
| UUID | Varchar |
| JsonB | Text |
| Point | Text |
While migrating, Data Loader automatically maps the correct types from PostgreSQL to MySQL. Users can also manually map datatypes while creating a migration session.
Download and test it free of cost — no email required, no registration necessary. The trial version is fully functional except for a row limit.