Cross-Database Sync
Compare schemas and move data between two databases — even across different engines.
🔒 Pro feature. Apply (schema sync) and Transfer (data sync) are gated to Pro. Compare + preview are free.
Two operations
Schema sync
Compare two databases, preview the change script, apply.
Data transfer
Copy rows from one database to another with automatic type conversion.
Where to trigger
From a table
Right-click a table → Compare Structure or Sync to…
From a database
Right-click a database → Compare Structure or Sync to…
From a schema
Right-click a schema node → same options.
The wizard supports table-level vs full-database scope, and a compare-only mode (no apply).
Schema sync — how it works
Diff
compute_schema_diff (and compute_schema_diff_with for custom type mappings) walks the source's InformationSchema and produces a SchemaDiff against the target.
Generate DDL
generate_sync_ddl produces the target's native DDL for each diff item. Cross-engine syncs use the unified type system to bridge dialect differences.
Apply
sync_apply_schema is Pro-gated — Free users can review the diff + preview the DDL, but Apply shows the Pro dialog.
Data transfer — how it works
Transfer
transfer_data streams rows from the source in batches, coercing types between engines (e.g. MySQL varchar(255) ↔ PostgreSQL character varying(255)).
Progress
Live progress is reported via sync-progress Tauri events; the wizard renders batch / total rows + ETA.
Pro-gated
sync_transfer_data requires require_feature(ProFeature::DataSync).
Same engine vs different engine
Same engine
Uses native schema-diff capabilities of the source engine for accuracy.
Cross-engine
Routes through RaisDB's unified type system. Per-column mappings can be overridden with a YAML TypeMap (advanced; see the cross-dialect translation page if it surfaces later).
See also
- Visual Schema Designer
- Import & Export — same-database path