Database and table options

Controls at the database, all-tables, and per-table level on the Customization stage.

The Customization stage shows the destination structure as a tree. Clicking a node opens its options in the right-hand panel. Options apply at three levels:

Database options

Click the database node. The right panel shows the options that apply to the whole run.

For DBConvert products:

Database options for DBConvert

For DBSync products:

Database options for DBSync

Overwrite existing database

If the target database exists, this option determines whether it is dropped and recreated. Enabling it wipes existing target data.

Overwrite existing database option

Quantization and Bulk insert

Quantization reads the source in portions, reducing memory pressure on large transfers. Enable it when you hit memory-related errors during conversion or synchronization.

Quantization option

Bulk insert reduces per-row overhead by inserting groups of rows in fewer statements. Typically faster than Quantization but uses more memory. DBConvert only - DBSync does not use bulk insert.

Bulk insert option

Detailed guidance is on Speeding up large transfers.

Parallel migration

Controls how many threads transfer data in parallel.

Parallel migration threads

  • Maximum is bounded by CPU and license tier:
    • Personal - up to 2 threads
    • Business - up to 8 threads
    • Enterprise - up to 16 threads

Trigger and bidirectional sync (DBSync only)

Trigger and bidirectional sync options

Trigger-based sync captures source changes via triggers and applies them to the target as updates occur. Use it when synchronization should react to ongoing changes instead of relying only on periodic runs. See Trigger-based synchronization.

Bidirectional sync keeps both databases in step, exchanging changes in both directions. See Bidirectional synchronization.

Both features are available for DBSync only. Supported direction pairs are listed in the corresponding pages.

Sync logs (DBSync only)

Sync logs options

  • Create Log - record every change applied during synchronization.
  • Capturing the changes between source & destination - log as a dump of INSERT statements for the changes applied.
  • Store dump for target database back-up - also write the reverse queries so the target can be rolled back to its pre-sync state.

Garbage symbols

Some characters cannot be used in identifiers on certain engines (SQL Server, MySQL, PostgreSQL, Access, Firebird, FoxPro, SQLite, DB2). The Garbage symbols to replace/remove field lets you replace them in bulk on the target.

Garbage symbols field

Enter the unwanted characters (for example, '"\\:/*<> -+), then click Replace all. A dialog offers a suggested name per object - confirm with OK, or click Apply All to replace every occurrence with the symbol in the Replace with field.

Garbage symbol replacement dialog

Global data-type mapping and naming

Change data types for the whole database in one place.

Global data-type mapping

Select multiple type mappings as needed before applying.

Naming options: convert all object names to lowercase, uppercase, or snake_case.

Naming convention options

  • Use lowercase - TableName becomes tablename.
  • Use uppercase - tablename becomes TABLENAME.
  • CamelCase to snake_case - SampleTableName becomes sample_table_name.

Available for SQL Server, PostgreSQL, Oracle, and Firebird targets.

All-tables defaults

Click the Tables node to see defaults that apply to every table unless overridden.

All-tables defaults

For MySQL targets, you can pick a Table engine (InnoDB, MyISAM, HEAP, BDB) and a character set here.

MySQL table-engine selection

Structure options

  • Copy structure - copy or modify the structure on the target.
    • Copy indexes - copy indexes along with the tables.
    • Copy foreign keys - copy foreign keys along with the tables.
    • Overwrite existing tables - drop and recreate tables that already exist on the target. Tables present only on the target are left alone. Example: source has T1, T2, T3, target has T1, T3, T4 - with this option enabled, target T1 and T3 are replaced; T4 stays.

      Overwrite existing tables example

    • Modify existing fields type (available when overwrite is off) - update target field types from the source. Existing target type is lost.
    • Modify existing indexes (available when overwrite is off) - replace target indexes with source indexes when they differ.
    • Modify existing foreign keys (available when overwrite is off) - replace target foreign keys with source foreign keys when they differ.
  • Copy data - copy table data to the target. Running the same session twice with this option may produce duplicate-entry warnings; use Overwrite existing tables (global) or Overwrite existing table (per-table) if that happens.
  • Chunk size - default 200,000 records. Each thread reads and processes up to that many rows per pass. For context on multi-threaded migration, see the blog post on multi-threaded migration.

DBSync defaults

DBSync defaults

When Synchronize data is enabled:

  • Insert sync - insert rows that are present in the source but not the target.
  • Update sync - replace changed rows on the target with source values.
  • Drop sync - delete rows from the target that are no longer in the source.

All three are enabled by default - together they cover full synchronization. Clear the ones you do not want. See How database synchronization works for what each mode does.

Per-table options

Click a specific table to override the defaults for that table only.

For DBConvert:

Per-table options for DBConvert

For DBSync:

Per-table options for DBSync

The controls mirror All-tables defaults but scoped to one table. Two extras appear at this level:

For MySQL targets, the per-table view also exposes table engine and character set overrides.