What is a MySQL to PostgreSQL Converter?
It transforms MySQL SQL text—schemas, queries, and dump snippets—into PostgreSQL-compatible SQL without connecting to a database or migrating live data automatically.
Convert MySQL SQL scripts into PostgreSQL-compatible SQL with local processing, migration warnings, and conversion reports.
Local only • SQL text conversion • No database connection • Review warnings before production use
It transforms MySQL SQL text—schemas, queries, and dump snippets—into PostgreSQL-compatible SQL without connecting to a database or migrating live data automatically.
It converts SQL text. INSERT statements in a dump are rewritten syntactically, but bulk data migration from a live MySQL database requires tools such as pgloader or ETL pipelines.
No. The tool never runs SQL against any database. Review and execute converted scripts in your own PostgreSQL environment.
No. All conversion happens locally in your browser.
No. Your SQL stays on your device. No telemetry or cloud processing is used for conversion.
Common MySQL 5.x and 8.x DDL/DML syntax including backtick identifiers, ENGINE clauses, AUTO_INCREMENT, ENUM, and JSON columns. Exotic legacy syntax may need manual review.
Output targets modern PostgreSQL (10+ for IDENTITY columns). SERIAL syntax is available as an option for older compatibility patterns.
By default to GENERATED ALWAYS AS IDENTITY. You can switch to SERIAL/BIGSERIAL in conversion options.
Default mode uses VARCHAR with CHECK constraints. Optional mode emits CREATE TYPE ... AS ENUM before the table definition.
MySQL JSON is mapped to JSONB by default for query performance. You can keep JSON instead.
When enabled, TINYINT(1) maps to BOOLEAN. Other TINYINT columns map to SMALLINT.
PostgreSQL has no UNSIGNED modifier. UNSIGNED is removed and a warning suggests adding CHECK (column >= 0) when needed.
No. Procedures, functions, and triggers receive best-effort conversion with explicit warnings because MySQL and PL/pgSQL differ significantly.
Yes for reasonably sized .sql files pasted or uploaded in the browser. Very large multi-gigabyte dumps are impractical client-side.
Yes. MySQL DELIMITER directives are stripped and procedure bodies are normalized to semicolon-terminated statements where possible.
They are removed because PostgreSQL does not use MySQL storage/charset table options. Warnings appear in the conversion report.
Simple CREATE VIEW statements are converted with generic syntax and function mapping. Complex views may need manual edits.
Regular and UNIQUE indexes are converted. FULLTEXT and SPATIAL indexes are flagged for manual migration to tsvector/GIN or PostGIS.
A warning is emitted. Rewrite to INSERT ... ON CONFLICT ... DO UPDATE in PostgreSQL with an explicit conflict target.
Mapped to STRING_AGG with a default comma separator. Verify ordering and separator requirements for your queries.
Mapped to COALESCE(), which is the idiomatic PostgreSQL equivalent.
Yes when Pretty-print output is enabled, using PostgreSQL-aware formatting.
Yes. The Validation tab runs PostgreSQL syntax checks. Use the SQL Validator handoff for deeper analysis.
Yes. Use the Compare handoff to open the SQL Compare tool with MySQL input and PostgreSQL output side by side.
Small and medium scripts convert instantly. Inputs above ~300 KB use a Web Worker. Practical in-browser limits depend on device memory.
Yes after the page loads because processing is client-side.
Modern Chromium, Firefox, Safari, and Edge with Web Worker and localStorage support.
Yes. No account or per-conversion charge.
No. Always review warnings, test on staging, validate constraints/indexes, and verify application queries before production migration.
No for large live database migrations. It complements them by converting SQL text quickly and privately for schema review and prototyping.
Yes. Export TXT, JSON, and HTML reports with per-statement status and warnings.
Use the SQL Server to MySQL Converter for Microsoft SQL Server scripts. For PostgreSQL-to-MySQL, convert via intermediate steps or dedicated migration tooling.