SchemaWerk compares two MySQL 8 database schemas. The source schema represents the desired state, while the target schema represents the current state of the database that is to be changed.
The application presents differences in a structured way, creates a selectable change plan, and generates an SQL preview. The SQL is not executed automatically, keeping every planned change under the user’s control.
SchemaWerk 1.0.0 is the first public full release. The core functionality is intended for MySQL 8 standard scenarios; comparison results and generated SQL scripts should still be thoroughly reviewed in the intended environment before production use.
Features
- separate source and target database connections
- connection testing and database selection
- comparison of:
- tables
- columns and column properties
- primary keys – standard cases
- indexes and UNIQUE constraints – standard cases
- foreign keys – limited: detection is standard cases
- table options – standard cases
- filterable master/detail views for comparison results
- change plan with selectable operations for supported schema changes
- risk assessment for non-destructive, review-required, and destructive changes
- dependency validation between supported schema changes
- generation of a commented MySQL 8 SQL preview for supported table and column changes
- copying the SQL preview to the clipboard
- user interface in German, English, and French
- immediate language switching without restarting
- system, light, and dark themes
- persistence of theme, language, window size, and window position
- keyboard-friendly navigation in the connection workspace
- About, Settings, and Update dialogs
- installer-neutral update check with a prepared distribution strategy for Microsoft Store, MSIX, Intune, and direct download
- automated tests for comparison, planning, SQL generation, and localization
Intentional limitations
SchemaWerk currently does not execute changes directly against a database. Version 1.0.0 does not yet include:
- direct execution of the generated SQL script
- export of the SQL script to a file
- execution logging
- automatic schema reload before execution
- comparison of views, triggers, routines, or events
In addition, version 1.0.0 has an important limitation: primary keys, normal indexes, UNIQUE constraints, foreign keys, and table options are now planned and generated as SQL for standard cases. This includes ADD PRIMARY KEY, DROP PRIMARY KEY, changes expressed as DROP PRIMARY KEY plus ADD PRIMARY KEY, ADD INDEX, DROP INDEX, ADD UNIQUE INDEX, index changes expressed as DROP INDEX plus ADD INDEX, ADD CONSTRAINT ... FOREIGN KEY, DROP FOREIGN KEY, and ALTER TABLE for engine, default character set, and default collation. New or changed AUTO_INCREMENT columns are supported when the matching primary-key operation is selected as well. Foreign keys that reference the local source schema are rewritten to the target database; external referenced schemas are preserved. Unusual index, foreign-key, or table-option combinations still require careful manual review and may need to be adjusted in the SQL script.