Replace hand-written SQL migrations with version-controlled state declarations. Deploy with confidence to MySQL, every time.
SchemaTongs grips your live MySQL database and casts every object into a clean, version-controlled package — tables as JSON, stored procedures and views as SQL scripts, organized and ready for source control.
Commit your schema package to source control. When a developer modifies a table JSON file or adds a stored procedure, the DBA reviews the actual design, not a procedural script. Pull requests become schema reviews.
SchemaQuench reads your declared schema, connects to the target server, and applies only the changes needed. Run it against dev, staging, and production — same package, correct results every time.
MySQL's constraint, index, and foreign key dependencies can trap you into manual reorganization. SchemaSmith computes and executes the correct drop-and-recreate sequence automatically. Rename a column? Indexes, constraints, and foreign keys follow. No script archaeology required.
Production databases drift. Someone modifies a table outside the deployment pipeline, an emergency index gets added, a stored procedure gets altered manually. SchemaSmith compares your declared state against the live database on every run and corrects drift — no guessing what changed.
SaaS teams running the same schema across dozens of customer databases can deploy in parallel. SchemaQuench targets multiple databases at once and converges them all to the declared state in a single run. One schema package, many targets, completely repeatable.
SchemaSmith integrates with Azure DevOps, GitHub Actions, GitLab CI, Jenkins, and TeamCity as command-line steps. Self-contained executables and XCOPY deployment mean no installer or runtime to manage. Pre-install on a self-hosted runner and reference SchemaQuench from any pipeline.
Long MySQL deployments can fail mid-run due to transient network blips, lock timeouts, or a migration script hitting bad data. SchemaQuench writes a checkpoint after each completed step — tables, migrations, objects — each one tracked individually. On the next run, pass --ResumeQuench and SchemaQuench skips everything already completed and picks up at the first incomplete step. Checkpoints auto-delete after a successful run, so there's no residue to mislead the next deployment.
Reference data with foreign-key dependencies creates a load-order problem: insert rows in the wrong sequence and the insert fails on the constraint. DataTongs with --ConfigureDataDelivery writes a DataDelivery block into each table's JSON file, capturing the data file, merge type, and match columns needed to apply it. SchemaQuench reads those blocks at deploy time and delivers data in two passes, handling circular relationships and complex dependency graphs without hand-coded ordering scripts.
See how state-based schema management compares to migration scripts, Liquibase, and other approaches.
Dive deeper into schema-as-code patterns, deployment strategies, and real-world MySQL scenarios.