Supported schema objects
It compares far more than table and column names.
DiffyPick reads the objects that make up your schema, detects the differences, and generates the SQL to sync them. Here is what gets compared when both sides run the same DBMS.
Compared and synced on all five engines
Whether it is MySQL, MariaDB, PostgreSQL, SQL Server or SQLite, these objects are covered by both diff detection and sync.
Tables & columns
Compared attribute by attribute: type, length and precision, NOT NULL, default values, AUTO_INCREMENT / IDENTITY, comments.
Primary keys, UNIQUE & CHECK constraints
Matched on substance — column composition, constraint names, and the actual CHECK expressions.
Indexes
Composite indexes, of course — and expression indexes and partial (filtered) indexes count toward identity too.
Foreign keys
Compared down to the ON UPDATE / ON DELETE behavior. The detected parent-child graph also drives the safe ordering of the sync SQL.
Views & triggers
Definition diffs are detected — and when a view changes, its dependent views are rebuilt in the right order automatically.
Stored procedures & functions
Supported on MySQL, MariaDB, PostgreSQL and SQL Server. (SQLite has no stored routine concept to compare.)
Each engine’s personality, compared as-is
Engine-specific objects are fully in scope when both sides run the same dialect. Highlights:
MySQL
AUTO_INCREMENT, events, partitions, FULLTEXT / SPATIAL indexes, invisible columns and indexes, per-column charset and collation, ON UPDATE CURRENT_TIMESTAMP, and more.
MariaDB
Everything in the MySQL column, plus SEQUENCE and application-time periods (PERIOD FOR).
PostgreSQL
Sequences, named ENUM types, domains, composite and range types, materialized views, partitions, custom collations, and more.
SQL Server
IDENTITY, sequences, synonyms, user-defined types, columnstore indexes, indexes with INCLUDE columns, CLUSTERED vs NONCLUSTERED primary keys, and more.
SQLite
WITHOUT ROWID and STRICT tables, generated columns — and CHECK constraints are extracted from the table definition SQL, beyond what PRAGMA exposes.
Found — and then fixed
Every object listed here goes beyond detection: DiffyPick generates the sync SQL that applies exactly the differences you select.
Foreign-key relationships and view dependencies are resolved automatically, and the SQL is arranged into a safe execution order. You pick what to apply, one row at a time.
Across different DBMS, it focuses on the shared structure
When the two databases speak different dialects, DiffyPick compares and syncs the concepts they share — table and column structures, primary keys, foreign keys — converting types as it goes.
Engine-specific objects such as views, stored routines and sequences are never force-translated into the other dialect. Anything that exists only on the target side shows up as a diff, and you decide row by row whether it stays or goes.
Drawing the line at schema structure
Users, roles and grants, physical placement such as tablespaces and filegroups, encryption keys, and replication settings are deliberately out of scope — they belong to each environment.
Aligning structure never spills over into auth or operational settings. That line is part of what makes DiffyPick safe to point at production.
See the resolution on your own database.
Free for SQLite, no account and no time limit. Add the other engines when you are ready.