Visual schema diff & sync for desktop
See exactly what changed in your database — even when you forgot.
Local, staging, production — schemas can drift at any time. DiffyPick compares any two databases, shows the diff in 5 seconds, and syncs them safely.

Works with the databases you already run
And it compares far more than table and column names — indexes, foreign keys, views, triggers, stored routines and more.
See everything DiffyPick compares →
Your migration files are lying.
Git made deploying code dramatically easier.
Deploying schema changes, though, still means eyeballing two structures side by side, or running migrations under strict discipline —
Exhausting either way.
The day we stopped opening migration files
Three years into the project, hundreds of migration files. Nobody reads them anymore. The truth only lives inside the database.
The hotfix SQL that never became a migration
Production incident, an ALTER typed straight into the console. It worked — and quietly broke every future environment build.
A column nobody remembers adding
Five people share the staging database. One day there is a new column. Who added it? When? For what?
Every check was green
Migration history was managed properly. Drift happened anyway — and no status check showed it.
Flyway and Liquibase manage history. DiffyPick shows reality.
Where it earns its keep
Multiple developers, multiple environments — applying to production, reproducing issues in a test environment, pulling in remote changes. Every day has a use for it.
Absorb per-environment drift in one pass
Day-to-day work happens on everyone’s own local Docker database. When it drifts from the shared or production environment, compare and apply — pull remote changes into local, or push yours out. Either direction, one pass.
Sanity-check every deploy
Did the migration actually leave the database the way you intended? Compare alongside your code deploys and replace “it should be applied” with proof.
Row sync, made safe
Reload a stale test environment straight from production with replacement sync. Only tables without structural diffs can be synced — pushing rows into a mismatched shape is impossible by design.
Visual diff. Visual selection. No options to tune.
DiffyPick turns this heavy, tedious responsibility into “pick and sync”.
Compare two databases, and the diff is extracted automatically — select what you want applied and run it.
See the diff. Pick what to apply.
Every difference is one row: color-coded, searchable, individually selectable. Even a large diff list — pin down exactly what you want to apply.

Dependencies, assembled for you.
Run SQL in the wrong order and it fails partway through. With DiffyPick, you do not have to think about the order — check the changes you want applied, their dependencies are selected alongside them, and the SQL is automatically arranged into a safe execution order.
For example:
- Parent tables first when creating; child tables first when dropping.
- When dropping a column, drop the indexes and constraints that use it first.
All of that ordering is handled for you.
Preview the exact SQL before it runs.
The SQL you see is the SQL that runs, statement by statement. Pick a syntax highlighting theme that suits you — it is a setting.

Guardrails before every execution.
Critical blockers stop the run. Advisories tell you what to check. Choices that are known to fail simply can’t be picked.

Sync, re-compare — zero diffs.
Apply the diff, then compare again. When it says “no differences”, you are actually done.

Cherry-pick your schema changes, intuitively.
Pick the databases, pick the diffs, run. This fast, every day.
Everything between “compare” and “done”, handled
The unglamorous parts between you and a clean sync — all taken care of.
FK-aware ordering
CREATE parents before children, DROP children before parents — automatically.
Cycle detection
Circular references are detected and FK checks are temporarily disabled for the run.
Preflight checks
Type casts, NOT NULL and UNIQUE constraints are sampled against the real data before execution.
Backup, one click away
Take a full DB / schema backup right from the confirmation dialog. Restore from history if anything goes wrong.
Statement-level execution & progress
Statements run one by one with live progress. On failure, execution stops on the spot and shows you exactly what happened.
Heavy ALTER warnings
Slow operations on large tables (100k+ rows) are flagged before you commit to them.
Multi-hop SSH tunnels
Multi-hop bastion setups are supported — chain through to reach the target database.
SSL/TLS client certs
CA, client certificate and key — per connection.
Data sync
Replacement sync (TRUNCATE + INSERT) with chunked transactions and native bulk loading.
Cross-dialect conversion
Type mapping with decomposition / JSON fallback rules carries structures across DBMS.
HTML reports
Export the diff as a report. A single HTML file — share one file with your team for review.
English & Japanese
Fully localized UI, warnings included. More languages are on the way.
Safe to point at production
A tool that alters schemas should err on the side of caution. DiffyPick is designed to fail safe.
Fail-closed by design
SQL that needs manual attention cannot be executed — the run is blocked, not warned away.
Everything surfaced before execution
Critical blockers in red, advisories in yellow — all in one confirmation screen, never buried in logs.
A way back
Back up the whole DB or schema first, restore it from history if you need to.
Your data never leaves your machine
No telemetry. No cloud sync. Your schemas, queries and results are never uploaded. Connection credentials are encrypted with AES-256-GCM, and the key itself is wrapped by the OS key store — Keychain on macOS, DPAPI on Windows, libsecret on Linux — so copying the files off the machine gets you nothing.
The only outbound requests are license verification and update checks.

Built for the age of AI-written code
AI writes SQL. Someone has to check it.
Migrations and SQL are increasingly machine-written. The more SQL gets generated, the more you need a place where a human can see exactly what will change before it hits production. DiffyPick is that place.
More non-DBAs touch databases than ever
With ORMs and service ownership, schemas belong to app developers now. DiffyPick is built for engineers who touch databases — not only for database engineers.
Schema migration to a different DBMS
From MySQL to PostgreSQL. Or SQL Server to MariaDB.
DiffyPick converts table and column structures between dialects. Engine-specific objects are, of course, out of reach in principle — but as groundwork for a cross-DBMS migration, it does the heavy lifting.
Every pair, both directions: 50 routes, round-trip tested until the diff comes back empty.


Pricing
One license, one named user — personal or commercial, any use case. Current rates are launch pricing.
Monthly
Launch pricingPrices exclude applicable sales tax/VAT.
- MySQL / MariaDB / PostgreSQL / SQL Server / SQLite
- All features included
- Cancel anytime
2-Year
Launch pricingPrices exclude applicable sales tax/VAT.
- MySQL / MariaDB / PostgreSQL / SQL Server / SQLite
- All features included
- $15/month equivalent — 17% off monthly
- Renews every 2 years
On both the Monthly and 2-Year plans, as long as you don't cancel (including payment failure), you keep the prices above even after launch pricing ends.
FAQ
Which platforms are supported?
macOS, Windows and Linux.
Can I try it for free?
Yes. SQLite connections only: no feature limits, no trial period. No account, no credit card.
Does it replace Flyway / Liquibase?
Either way works — side by side or DiffyPick on its own. But when you split the roles — your migration tool for history, DiffyPick for what the database actually looks like right now — your existing migration files stay healthier.
Is it safe to point at production?
A preflight check runs on the confirmation screen before execution. In most cases there is nothing to worry about — and when there is a risk or warning, it is shown clearly. A backup is one click away right before executing, so if you are unsure, take one first.
From the designer
Across the many projects I have moved through, I kept seeing the same thing: migration files quietly decaying into something nobody trusted.
Looking at the development flow, the real schema does live only inside the database — yet there are surprisingly few ways to compare it, and the options that do exist are built around UIs so complex that only database professionals can really drive them.
So I designed a tool that extracts the diff automatically, lets you pick, and applies changes safely, with as little visual and operational load as possible.
If you have ever wished you could ship database changes as easily and reliably as a Git code deploy — without migrations — DiffyPick should feel familiar from the first minute.
Come back from another task — and see the diff at a glance.
Download it and start by comparing the databases you already run.