RaisDBRaisDB
Connection Manage

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

On this page