Skip to main content
Features

Every difference found. Every change reviewable.

SchemaSync Professional covers the whole path from noticing that two schemas disagree to deploying the migration that reconciles them — and it never writes anything you have not read first.

Schema compare

See every difference between two schemas in seconds

Point SchemaSync at any two MySQL schemas — a developer machine and staging, staging and production, or a live database and a saved snapshot. It reads both structures and reports exactly what differs, object by object, down to the column type, index method and constraint action.

  • Tables, columns, indexes, foreign keys and constraints
  • Views, stored procedures, functions, triggers and events
  • Character set, collation, engine and table options
  • Filter out anything you deliberately keep different per environment

SchemaSync Professional

orders_dev ⇄ orders_prod

CompareFiltersSnapshotGenerate SQLBackup

Source

orders_dev

localhost:3306

Target

orders_prod

db-prod.internal:3306

12added4removed9modified148identical
Object
customers.loyalty_pointsAddedCREATE
orders.statusModifiedMODIFY
idx_orders_placed_atAddedCREATE
sessions.legacy_tokenRemovedDROP
fk_orders_customerModifiedREPLACE
vw_monthly_revenueAddedCREATE
paymentsIdenticalSKIP
MySQL 8.0.42 → MySQL 8.4.0 · 173 objects scanned
SQL preview

Read the migration before it touches anything

Nothing runs until you have seen it. SchemaSync generates the ordered migration script, wraps it in a transaction, and shows it to you in full. Drop statements arrive commented out by default, because deleting a column should always be a decision rather than a side effect.

  • Correctly ordered statements that respect foreign key dependencies
  • Destructive operations commented out until you opt in
  • Save the script to run through your own review or CI pipeline
  • Copy any single statement without exporting the whole file

Generated migration script

25 statements · transaction-wrapped

ExecuteSave .sqlCopyDry run
-- Generated by SchemaSync Professional 1.4.2-- Source: orders_dev    Target: orders_prod-- 25 statements · reviewed by you before anything runs START TRANSACTION; ALTER TABLE `customers`  ADD COLUMN `loyalty_points` int unsigned NOT NULL DEFAULT 0  AFTER `email`; ALTER TABLE `orders`  MODIFY COLUMN `status` enum('draft','paid','shipped') NOT NULL; CREATE INDEX `idx_orders_placed_at` ON `orders` (`placed_at`); -- Dropped columns are commented out by default.-- ALTER TABLE `sessions` DROP COLUMN `legacy_token`; COMMIT;
Destructive statements commented out · 1 requires review
Synchronization

Apply changes as one transaction, or not at all

Choose the direction, review the plan, and let SchemaSync execute it. Pre-flight checks confirm privileges, engine support and character sets before the first statement runs. The whole migration is applied inside a single transaction, so a failure halfway through leaves the target exactly as it was.

  • Pre-flight checks catch permission and compatibility problems first
  • A rollback point is created before anything is applied
  • Selective sync — apply some differences and leave the rest
  • Automatic re-compare afterwards to confirm the result

Synchronize orders_dev → orders_prod

Step 3 of 4 · applying changes

orders_devorders_prodOne-way
18 of 25 statements applied72%

Pre-flight checks

Privileges, engine and charset verified

Completed

Backup target schema

orders_prod-20260714-2104.sql · 42 MB

Completed

ALTER TABLE `orders`

MODIFY COLUMN `status` — running

In progress

CREATE INDEX `idx_orders_placed_at`

Queued

Pending

Verify and re-compare

Confirms the target matches the source

Pending
Rollback point created at 21:04:11
Difference viewer

Line-level DDL comparison, side by side

When an object differs, open it and see why. The difference viewer puts both definitions next to each other and marks the changed lines, ignoring the formatting and comment noise that makes manual DDL comparison so error-prone.

  • Side-by-side DDL with changed lines marked
  • Whitespace, comment and ordering noise filtered out
  • Status shown by glyph and label as well as colour
  • Jump straight from a difference to the statement that resolves it

Difference viewer — orders.status

Column definition · 3 differences

orders_devsource
CREATE TABLE `orders` ( `id` bigint unsigned NOT NULL, `status` varchar(20) NOT NULL, `placed_at` datetime NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
orders_prodtarget
CREATE TABLE `orders` ( `id` bigint unsigned NOT NULL, `status` enum('draft','paid') NOT NULL, `placed_at` datetime NOT NULL, PRIMARY KEY (`id`), KEY `idx_placed_at` (`placed_at`)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC
Only in target Only in source Changed
Line-level comparison · whitespace and comments ignored
Backup

A snapshot before every deployment, automatically

SchemaSync takes a backup of the target before it applies anything, and you can take one whenever you want. Snapshots are written to a folder you choose, on a retention policy you set, so recovering a schema never depends on remembering to run something first.

  • Automatic pre-synchronization backup of the target schema
  • Scheduled or on-demand snapshots with retention limits
  • Schema-only or schema-with-data, written straight to disk
  • Every backup doubles as a comparison source

Backup

Schema and data snapshots

Back up nowScheduleRetention
Backing up orders_prod · 27 of 42 tables64%

Streaming to disk · 6.4 MB/s · about 12 seconds remaining

Recent backupsSize

orders_prod-20260714-2104.sql

Today, 21:04 · Pre-sync

42.1 MB

orders_prod-20260713-0200.sql

Yesterday, 02:00 · Scheduled

41.8 MB

orders_stage-20260712-1740.sql

12-Jul-26, 17:40 · Manual

38.4 MB
Stored locally · D:\SchemaSync\backups
Restore

Roll a schema back to a known-good state

Pick a snapshot and SchemaSync shows you what restoring it would change before it starts. It takes a safety backup of the current state first, so the restore itself is reversible — which is what makes it safe to use under pressure.

  • Preview the effect of a restore before running it
  • A safety backup of the current state is taken first
  • Dry-run mode verifies every object without writing
  • Restore a single object instead of the whole schema

Restore from backup

orders_prod-20260714-2104.sql

RestorePreview changesCompare with live

Restoring replaces 3 objects that exist only in the live schema

A safety backup of the current state is taken first. Review the list below.

Object
orders.fulfilment_noteRemovedDROP
orders.statusModifiedREVERT
customersIdenticalKEEP
Dry run · 42 of 42 tables verified100%
Dry run completed · no errors reported
Connection manager

Every environment saved, and clearly labelled

Keep local, staging and production connections side by side, each tagged with its environment so production is never mistaken for a sandbox. Credentials are encrypted locally with Windows DPAPI and never leave the machine.

  • Environment labels that make production visually distinct
  • Credentials encrypted at rest with Windows DPAPI
  • TLS with certificate verification, plus SSH tunnelling
  • Mark a connection read-only to block writes outright

Connection manager

4 saved connections

Saved connections

Local development

localhost:3306

LocalOnline

Staging

db-stage.internal:3306

StagingOnline

Production (read-only)

db-prod.internal:3306

ProductionOnline

Analytics replica

db-replica:3306

StagingOffline
Production (read-only)edit
Host
db-prod.internal
Port
3306
User
schemasync_ro
TLS
Required · verify CA
Timeout
30s
Write access
Blocked

Connected in 84 ms · MySQL 8.4.0

Credentials encrypted with Windows DPAPI · never sent anywhere
Dark mode

A dark interface built for long sessions

SchemaSync follows the Windows system theme or holds whichever one you pick. Both themes are designed around the diff palette, so added, removed and modified stay legible at the same contrast whichever you use.

  • Follows the Windows system theme, or stays fixed
  • Diff colours tuned for contrast in both themes
  • Applies to editors, reports and exported HTML
  • Adjustable editor font and density

Appearance

Follows the Windows system theme, or pick one

DarkActive
loyalty_pointsint unsigned
statusvarchar → enum
legacy_tokenvarchar(64)
LightPreview
loyalty_pointsint unsigned
statusvarchar → enum
legacy_tokenvarchar(64)
Theme applies to diff colours, editors and reports
Object coverage

Eighteen object types, compared in detail

Not just tables and columns. The differences that break a deployment are usually the ones a shallow comparison skips.

Structure

  • Tables and table options
  • Columns, types and defaults
  • Generated columns (virtual and stored)
  • Primary keys
  • Partitions

Integrity and access paths

  • Indexes, including column order
  • Unique and fulltext indexes
  • Index visibility and method
  • Foreign keys and referential actions
  • Check constraints

Programmable objects

  • Views and their definers
  • Stored procedures
  • Functions
  • Triggers
  • Scheduled events

Encoding and storage

  • Character sets, per table and per column
  • Collations
  • Storage engine
  • Row format
  • Comments
Compatibility

Wherever your MySQL runs

Self-hosted or managed, on your network or behind an SSH tunnel — SchemaSync connects the same way and compares the same objects.

MySQL

5.7, 8.0 and 8.4

MariaDB

10.4 and later

Percona Server

5.7 and 8.0

Amazon RDS & Aurora

MySQL-compatible endpoints

Azure Database for MySQL

Flexible and single server

Google Cloud SQL

MySQL instances

See it against your own schemas

A comparison tool is easy to evaluate: point it at two databases you already know disagree, and check whether it tells you the truth.

  • Windows 10 and 11 (64-bit)
  • Code-signed installer with a published checksum
  • Email support during the trial