MySQL-dbHydrateMySQL 8.0 / 8.4 LTS

MySQL changes.
Reviewed before they run.

Compare schemas. Rehearse on a shadow target and review a recovery plan for DDL that commits step by step.

PostgreSQL example: schema objects, generated SQL, impact summary and target confirmation in the dark dbHydrate workspace
dbHydrate workspace · select to enlargeDesign preview · PostgreSQL example data

Select differences, inspect SQL, and rehearse a change before applying it.

  1. 01Select

    Choose the objects to review.

  2. 02Inspect

    Read the generated SQL side by side.

  3. 03Validate

    Check warnings and rehearse the plan.

THE CHANGE, IN CONTEXT

See exactly what will change.

Keep the source, target and decisions together. Select the differences you want to include before applying them.

Target · currentUAT
CREATE TABLE customers (
  id bigint PRIMARY KEY,
  first_name varchar(80),
  email varchar(255)
);
Source · desiredDEV
CREATE TABLE customers (
  id bigint PRIMARY KEY,
  first_name varchar(80),
  email varchar(255),
  phone varchar(32)
);

+ One reviewed column

  • Selected objectsFocus on the tables, indexes and views that matter.
  • Generated SQLInspect current and desired definitions.
  • Reviewed warningsCheck impact, dependencies and the target.

Illustrative definitions. Review the actual plan for your database.

MySQL shadow rehearsal

Rehearse on a shadow target. MySQL DDL can commit statement by statement; review recovery SQL and backups before applying.

  1. 1
    CompareIdentify differences.
  2. 2
    Dry runRehearse the plan.
  3. 3
    ConfirmReview and approve.
  4. 4
    ApplyExecute on the target.

Manage users & access

Create users, update accounts, and add or remove database access. Review engine-specific roles and permissions before applying.

View the access workspace
Engine details & considerations
ENGINE-AWARE RECOVERY

Engineered around MySQL DDL mechanics.

MySQL commits DDL statement by statement. dbhydrate never makes false promises about automatic rollback. Instead, it gives you shadow dry runs and reviewed rollback scripts.

Shadow Dry Runs

Before modifying production, rehearse changes against a shadow environment. dbhydrate checks the DDL sequence and schema dependencies on the shadow target. Review live target permissions, locks, data volume and workload conditions separately.

-- Shadow rehearsal against staging
ALTER TABLE shop.orders ADD COLUMN status varchar(32) NOT NULL DEFAULT 'pending';
✓ Shadow dry run passed: 0 warnings, 0 syntax errors

Reviewed Rollback Scripts

Because MySQL cannot undo committed DDL statements automatically, dbhydrate creates a reverse SQL script for every run. You can inspect the exact reverse DDL statements alongside your forward plan before applying changes.

-- Auto-generated rollback script
ALTER TABLE shop.orders DROP COLUMN status;
Stored in local run history alongside execution snapshot

Granular Selective Sync

Promote only what you intend. Select individual tables, columns, secondary indexes, foreign keys, views, and stored routines. View color-coded DDL diffs highlighting added, modified, or omitted objects.

-- Target before vs Source after
- ENGINE=InnoDB DEFAULT CHARSET=latin1
+ ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Referential Row Copying & PII Masking

Copy test datasets between MySQL instances. Use custom WHERE conditions and row limits. dbhydrate copies rows in dependency order and transforms PII in local memory with deterministic replacements before inserting.

WHERE shop.orders.status = 'shipped' LIMIT 500;
→ In-memory masking applied to user emails & addresses
LIVE SCHEMA DIFF & DDL BUILDER

Interactive Schema Diff Playground

Simulate schema divergences in real time. Add or modify columns, switch database engines, and inspect the verified, dependency-ordered DDL synchronization script.

app.orders
ColumnData TypeStatus
idPKbigint
customer_idFKbigint
created_attimestamp with time zone
statusvarchar(32)
metadatajsonb
Add Schema Column
Generated Synchronization SQL2 Added · 0 Modified
-- dbhydrate generated PostgreSQL synchronization plan
-- Protection tier: Safe Transactional DDL
BEGIN;

ALTER TABLE app.orders
  ADD COLUMN status varchar(32) DEFAULT 'pending' NOT NULL;
ALTER TABLE app.orders
  ADD COLUMN metadata jsonb;

-- Create index on added column
CREATE INDEX idx_app_orders_status
  ON app.orders (status);

COMMIT;
-- End of PostgreSQL transactional execution phase
MYSQL DETAILS

Frequently asked questions.

Which MySQL versions and distributions are supported?

dbhydrate is designed for MySQL 8.0 and MySQL 8.4 LTS. It supports self-hosted MySQL servers on Linux, Windows, and Docker, as well as managed cloud instances including Amazon RDS for MySQL, Amazon Aurora MySQL, Google Cloud SQL for MySQL, Microsoft Azure Database for MySQL, and PlanetScale. Note: MariaDB and legacy MySQL 5.7 are outside the current documented scope.

Why can MySQL schema changes (DDL) not roll back automatically?

In MySQL, Data Definition Language (DDL) statements execute with implicit commits—meaning each CREATE, ALTER, or DROP statement commits immediately to the storage engine and cannot be rolled back inside a SQL transaction. While some tools make vague promises of automatic rollback, dbhydrate is honest: it uses shadow dry runs to test DDL execution beforehand and generates reviewed rollback SQL scripts for manual recovery.

What is a shadow dry run for MySQL?

A shadow dry run applies your planned DDL statements against an isolated shadow schema or staging database instance before touching production. This verifies syntax, column defaults, constraint dependencies, and collation compatibility without risking production table locks or partial schema failure.

How does dbhydrate handle character set and collation differences?

dbhydrate inspects both table-level and column-level character sets and collations (such as utf8mb4_0900_ai_ci). Differences between source and target are flagged during comparison so you can ensure collation compatibility before applying changes.

Bring clarity to your next
MySQL change.

14-day trial · Starts when you register in the desktop app. Each purchased seat allows 1 device(s).

Try MySQLView pricing