↔ YOUR DATABASES. YOUR CONTROL.

Compare. Promote. Verify.
Make every environment count.

dbmigrate helps developers compare, promote, and verify database changes—
and refresh lower environments with useful, masked data.

14-DAY TRIAL

Meet your next workflow.

Choose the installer for your computer.

On a Mac, check Apple menu → About This Mac for your chip.

Trial installers are not available here yet. Please check back for the download.
See how it works
macOS· WindowsBuilt for PostgreSQL & MySQL
CLARITY AT EVERY STEPInteractive product illustration
dbmigrate / Schema sync Local workspace
SCHEMA SYNC
Review your changes
SOURCEdevelopment
Dev
TARGETsandbox
Sandbox
CHANGES 3
No deletions in this plan
-- Preview before you apply
1ALTER TABLE app.orders2  ADD COLUMN status varchar(32)3  NOT NULL DEFAULT 'pending';
Reviewed SQL. No hidden changes.
You review. You approve.
Illustrative workflow with sample data. This preview does not connect to a database.
Review before every run Encrypted credentials App state stays local
CHOOSE YOUR DATABASE

Two products, built for their engines.

Pick PostgreSQL or MySQL to see the version support, recovery approach, and workflow for your product.

PostgreSQL 13–17

dbmigrate for PostgreSQL

Compare and promote PostgreSQL schema changes, then refresh lower environments with selected, related, masked data.

  • Transactional DDL phases and dependency ordering
  • Selective schema synchronization with SQL review
  • Filtered row copy with referential integrity and masking
$99USD / year

Per developer seat for the PostgreSQL edition. Install on up to two devices.

MySQL 8.0 & 8.4 LTS

dbmigrate for MySQL

Compare and promote MySQL schema changes with recovery steps designed around MySQL’s DDL behavior.

  • Shadow dry runs before applying DDL
  • Reviewed rollback SQL; no automatic DDL rollback claim
  • Filtered row copy with referential integrity and masking
$99USD / year

Per developer seat for the MySQL edition. Install on up to two devices.

Each edition is licensed separately. A PostgreSQL license does not include the MySQL product, or vice versa. The price shown is the current annual list price; online checkout is not available yet.

LESS MANUAL WORK. MORE CLARITY.

Make the change.
Keep the control.

From one column to an entire schema,
move exactly what you need—with the
context to make the right call.

Spot the difference.
Sync what matters.

Compare source and target side by side. Sync a full schema or select individual tables, indexes, views, functions, and more.

FULL & SELECTIVE SCHEMA SYNC
app.ordersModified
idbigintPK
customer_idbigintFK
created_attimestamp
+ statusvarchar(32)

The right rows.
All the right relations.

Copy whole tables, filter with a WHERE clause, or pick rows from a grid. Include related parents and children in dependency order.

ROW FILTERWHERE status = 'shipped'
customersordersitems
Related rows included

A record of every run.

Keep exact SQL, results, snapshots, and generated rollback scripts together in local run history.

Schema sync SQL · snapshot · run report

Your workflow, repeatable.

Save selections as profiles. Compare, plan, and apply from the desktop or the dbmt CLI, with protection gates intact.

❯dbmt compare
FROM DIFFERENCE TO DONE

Three steps. Nothing hidden.

A workflow that gives you the full picture before you commit.

01

Connect & compare

Choose any two connections of the same engine. See what’s new, changed, or only in the target.

02

Review & rehearse

Inspect the generated SQL, check warnings, and dry-run the plan before making changes.

03

Confirm & apply

Approve the plan, follow each step, and keep the result, SQL, and recovery details in your history.

TWO DIRECTIONS. ONE WORKSPACE.

Move changes forward.
Bring useful data back.

Promote a reviewed schema to the next environment. Refresh development with the data that makes testing meaningful.

SCHEMA PROMOTION
DevUATProd

Compare. Review. Apply. Verify.

Select changes, inspect SQL, and satisfy the target’s protection gates. After execution, review the run results and compare schemas again.

MASKED ENVIRONMENT REFRESH
ProdMaskSandbox

Realistic cases. Controlled values.

Filter source rows, include related data, apply reusable masking rules, and set environment-specific column values before copying.

Choose your own connection pairs; these are example workflows, not a fixed pipeline. Source and target must use the same database engine.

A MORE CAPABLE EVERYDAY WORKFLOW

Small details.
Better database days.

Six additions bring discovery, precise data selection, reusable masking, and a more personal workspace to the core workflow.

Connect without the guesswork.

Discover databases on your server and PostgreSQL schemas as selectable chips. Keep manual entry available when discovery permissions are restricted.

DATABASE & SCHEMA DISCOVERY

Bring just the rows you need.

Test a per-table WHERE condition, pick primary-key rows from a grid, or set a row limit. Review filter badges and estimates before copying.

FILTERS, ROW PICKS & LIMITS

Keep your workspace with you.

Saved connections, settings, and history use a persistent application data location, with migration of legacy settings during upgrades. Published by MoNeel Ventures LLC.

PERSISTENT CONNECTIONS & IDENTITY

Make the workspace yours.

Choose Light, Dark, or System appearance. Your preference persists, alongside configurable automatic locking and keychain unlock settings.

APPEARANCE & SECURITY SETTINGS

Shape data for its next home.

Set fixed text, number, Boolean, or SQL NULL values per column. Inspect before-and-after previews, with clearer schema-sync controls in dark mode.

COLUMN OVERRIDES & REFINED SCHEMA SYNC

Define masking once. Reuse it.

Build a searchable rule dictionary with wildcard column patterns, categories, deterministic seeds, and a live playground. A consistent app icon completes the desktop experience.

MASKING DICTIONARY & APP ICON

Review the final values. Column overrides run after masking; check their final values and database constraints before execution. Masking presets help configure rules and do not certify regulatory compliance.

Explore the complete product scope

Compare & synchronize

PostgreSQL 13–17 and MySQL 8.0 / 8.4 LTS; same-engine connections; full or selective schema synchronization; dependency ordering; generated SQL review and dry runs.

Copy & prepare data

Whole tables, WHERE filters, primary-key row selections, row limits, related parent/child rows, conflict handling, masking, and fixed column overrides.

Protect & inspect changes

Per-connection protection levels, stronger production gates, pre-apply schema checks, snapshots, exact SQL and run results, and engine-aware rollback scripts. Recompare schemas to inspect the resulting state.

Repeat your workflow

Saved profiles, desktop workflows and the dbmt CLI, database/schema discovery, persistent connections and settings, local run history, encrypted saved secrets, and automatic locking.

Control masking & appearance

Reusable rules for PII, health, financial, security, and custom categories; Faker replacements, salted hashes, regex replacements, fixed strings, and NULL; deterministic seeds and a rule playground; Light, Dark, and System themes.

Scope is based on the v1.2 product specification and six supplied feature implementation notes (FEAT-001–006). It describes the product documentation, not an independent audit of a shipping release. Cross-engine conversion and automatic MySQL DDL rollback are outside this scope.

PROTECTION THAT MATCHES THE ENVIRONMENT

Production is different.
Treat it that way.

Set protection per connection, not by a rigid pipeline. Every target gets a review. Sensitive environments get stronger gates.

01DevLow protection
02SandboxMedium protection
03UATMedium protection
04Pre-ProdHigh protection
05ProdHigh protection

Approval means approval.

High-protection targets require a dry run, a snapshot, and a typed database name. Target changed since comparison? Compare again.

Dry run passed
Snapshot required
Database name confirmation

Local by design.

Keep app state on your computer, with AES-256-GCM encryption for saved secrets, a master password, and automatic locking.

Your machineConnections · profiles · history

No AI service receives your row values.

i

Engine-aware, down to recovery. PostgreSQL supports rollback within its transactional phase. MySQL schema changes commit step by step; dbmigrate uses shadow dry runs and reviewed rollback scripts. It never promises automatic MySQL DDL rollback.

FIND THE RIGHT FIT

A clearer view
of the tool landscape.

Two free schema-diff tools. Two enterprise platforms. One side-by-side look at the workflows each covers.

Database change and environment refresh capabilities
Workflow / capabilitydbmigrateDocumented product scopepgAdmin Schema DiffFree / open sourceMySQL WorkbenchCommunity / GPLFlyway EnterpriseEnterprise platformLiquibase SecureEnterprise platform
Schema comparison focusPostgreSQL + MySQL; same enginePostgreSQL databases or schemas; same major versionMySQL live databases, models and SQL scriptsMulti-engine; advanced capabilities vary by engineMulti-engine; capabilities vary by database
Compare & generate SQLFull or selected objects; review before applyObject differences + selected synchronization SQLSchema diff, synchronization + SQL generationSchema comparison + generated migration scriptsDatabase diff + changelog-based changes
Environment promotionReviewed source → target sync; protection per connectionRun generated synchronization SQLSynchronize chosen objects between sourcesVersioned migrations + CI/CD workflowsVersioned changesets + automated deployment flows
History & recoveryLocal run SQL, snapshots and reviewed rollback scriptsNo migration ledger established here¹SQL history; no versioned release ledger established here¹Migration history, validation + undo migrationsTracked changesets, history + rollback definitions
Drift & verificationPre-apply schema check; recompare and inspect run resultsCompare database/schema state on demandCompare live database or model stateDrift and change reportsDrift inspection + deployment tracking
Lower-environment dataFiltered/selected rows, relations, row limits + fixed overridesNot established in Schema Diff docs¹Data editing/export; migration wizard is separateMasked refresh workflow not established here¹Masked refresh workflow not established here¹
Reusable data maskingRule dictionary, deterministic seeds + preview playgroundNot established in Schema Diff docs¹Not established in cited Community feature list¹Not established in cited Flyway feature summary¹Not established in cited change-automation docs¹
Safety & governanceLocal review gates, dry runs, encrypted credentialsReview generated synchronization scriptsReview generated synchronization scriptsPolicy checks + automated deployment controlsPolicy checks + governed deployment flows

How to read this comparison. Checked October 1, 2026 against the official documentation linked in each column. dbmigrate reflects the documented scope above. Enterprise capabilities can depend on edition, database, and configuration. This compares the named products, not every product in each vendor’s portfolio.

¹ “Not established” means the cited source does not establish that workflow; it does not prove the capability is unavailable. pgAdmin’s column covers Schema Diff specifically. MySQL Workbench also has a migration wizard; its schema-diff focus here is MySQL. Additional source: Workbench schema comparison documentation.

DEVELOPMENT OPPORTUNITIES

Where to go next.

Areas to evaluate, not announced or available features.

  • Versioned release packagesPromote an immutable change set with a migration ledger and CI/CD checks.
  • Deeper post-run verificationAdd row-level reconciliation, checksums, and explicit verification reports.
  • Team governanceExplore shared policies, role-based approvals, and scheduled drift alerts.
YOUR NEXT CHANGE STARTS HERE

Less guesswork.
More forward.

Explore dbmigrate with a 14-day trial.
Bring clarity to your next database change.

PostgreSQL MySQL
GET TO KNOW DBMIGRATE14 days

Your databases.
A better way to work.

  • Compare and selectively sync schemas
  • Copy full tables or selected rows
  • Review SQL, dry runs, and masking
  • Keep snapshots and local run history
14-DAY TRIAL

Meet your next workflow.

Choose the installer for your computer.

On a Mac, check Apple menu → About This Mac for your chip.

Trial installers are not available here yet. Please check back for the download.
Ready to make it yours?
ANNUAL LICENSE

dbmigrate for your database

$99 USD per year per developer seat. One seat covers the selected edition and may be installed on up to two devices.

PostgreSQL and MySQL are separate products and require separate licenses.

Online checkout is not available yet. The listed price is $99 USD per year per seat; purchase will be available when checkout opens.
·PostgreSQL & MySQL pricing

macOS · Apple Silicon & Intel   /   Windows x64

A FEW MORE DETAILS

Good questions.
Clear answers.

Which dbmigrate product should I choose?

Choose dbmigrate for PostgreSQL if you work with PostgreSQL 13–17, or dbmigrate for MySQL for MySQL 8.0 and 8.4 LTS. They are separate single-engine products; a license for one engine does not include the other.

How much does a dbmigrate license cost?

The current listed price is $99 USD per year per developer seat for one engine edition. One seat may be installed on up to two devices. PostgreSQL and MySQL are licensed separately. Online checkout is not available yet.

Can I refresh a test environment with selected data?

Yes. Copy whole tables, test a WHERE condition, select primary-key rows, or apply a row limit. Include related rows, review masking rules, and use fixed column overrides for environment-specific values. Row limits are not a guarantee of a representative random sample.

Can I reuse masking rules across copies?

The reusable masking dictionary supports wildcard column patterns, categories, enabled/disabled rules, deterministic seeds, and a live playground. Rules include Faker replacements, salted hashes, regex replacements, fixed strings, and NULL. Column overrides run after masking, so review final values. Presets are configuration aids, not compliance certification.

What does verify mean in this workflow?

Inspect recorded SQL and run results, then compare source and target schemas again. The current documented scope does not promise automated row-by-row reconciliation or checksum verification; those are development opportunities.

Will my connections and appearance settings persist?

The application uses a persistent local data location for saved connections, settings, and history, with migration of legacy configuration during upgrades. Light, Dark, or System appearance preferences are saved. Database and schema discovery also keeps a manual-entry fallback.

Which databases does dbmigrate support?

PostgreSQL 13–17 and MySQL 8.0 and 8.4 LTS, including self-hosted databases and managed services running those versions. Source and target must use the same engine. MariaDB, MySQL 5.7, SQL Server, and Oracle are outside the current scope.

Can I migrate PostgreSQL to MySQL?

dbmigrate synchronizes environments of the same engine: PostgreSQL to PostgreSQL, or MySQL to MySQL. It does not convert schemas or data between database engines.

What happens before a change reaches production?

Every run opens Review & Confirm with the change list and generated SQL. High-protection targets require a passing dry run, a pre-apply snapshot, and a typed database-name confirmation. The target schema is checked again before execution; if it has changed, you must compare again.

Can schema changes be rolled back?

PostgreSQL changes in the transactional phase roll back automatically on failure; some operations run in a separate phase. MySQL DDL commits one statement at a time and cannot roll back automatically. dbmigrate records applied steps and generates rollback SQL for review. Schema rollback scripts do not reverse copied data; restoring data requires an appropriate data export.

How does sensitive data masking work?

When copying from a higher-protection source to a lower-protection target, every copied column needs an approved masking rule or an explicit “Not PII” decision. Values are transformed in memory before writing to the target. Detection uses column names and local samples, with no AI service.

Where are my credentials and run history stored?

App state stays in local files on your computer. Saved database passwords and SSH secrets are encrypted with AES-256-GCM, protected by your master password. Run history records the exact SQL and results without credentials. Database connections still communicate directly with your chosen servers.