Polygres

PolyGres

← Back to the PolyWire overview

MySQL → PostgreSQL. No driver change.

Your MySQL application thinks it's talking to MySQL. It's actually talking to Postgres — and it never finds out. The mysql CLI and JDBC connect over the real MySQL wire protocol; PolyWire executes every statement against a real PostgreSQL database on the other end.

How it works

MySQL client mysql CLI or JDBC — unmodified, same driver you already use
POLYWIRE MyWire (real MySQL wire protocol) → Connect · Protect · Control · Accelerate · Observe
PostgreSQL, anywhere RDS · Aurora · Cloud SQL · Azure · OCI · Supabase · On-prem

See it happen

$ mysql -h 127.0.0.1 -P 13306 -u root -p

mysql> SELECT * FROM orders;

+----------+-------------+--------+
| order_id | customer_id | amount |
+----------+-------------+--------+
|     1001 |          42 | 129.99 |
|     1002 |          57 |  89.50 |
+----------+-------------+--------+
2 rows in set

mysql>
mysql CLIMyWirePolyWirePostgreSQL

MySQL client. MySQL wire protocol. PostgreSQL database. No client rewrite. Table contents above are illustrative — the query, protocol, and path are exactly real. See PolyWire capabilities for exact client-by-client coverage.

Try it in 60 seconds

1. Start PolyWire — point it at a Postgres you already have:

docker run -p 13306:13306 \ -e POLYWIRE_HOST=<host> -e POLYWIRE_PASSWORD=<password> \ ghcr.io/polygres26/polywire:latest

2. Connect — same mysql CLI you already use:

mysql -h 127.0.0.1 -P 13306 -u root -p

3. Done — mysql CLI → MyWire → PolyWire → PostgreSQL. No driver change.

Pointing at a specific managed Postgres instead — Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL, or Oracle OCI? See CONNECTING.md for the real provider-specific setup.

Why teams do this

Modernize without a rewrite

Move off MySQL without touching every application that talks to it — the driver, the connection string, and the SQL your app already sends all keep working.

Standardize on Postgres

Consolidate MySQL, Oracle, SQL Server, MongoDB, and more onto one real Postgres database, without every team rewriting its data layer first.

Keep governance in one place

The same SQL firewall, QoS, and audit path that governs every other protocol also governs this one — not a separate, unguarded route to your data.

Planning the actual migration — schema, sizing? PolyAdvisor scores the difficulty and sizes the target Postgres while PolyWire (above) keeps your application running the whole time.

Compatibility, honestly scoped

ProtocolClient tested againstBound parameters decodedNative error translationRLS identity
MySQLMySQL CLI, JDBC✓ (errno)

Full compatibility matrix, all ten protocols →

Ready to put PolyWire in front of Postgres?

Try it free — Developer Edition, all features. Taking it to production? Bring your architecture and we'll help map the deployment.