Table options

Set copy and rebuild behaviour for selected tables, then override one table where needed.

Last updated October 19, 2026

For table selection, names and worker threads, see Job options.

Problems with the mapping are listed in the line at the bottom of the step. See Pre-migration checks.

Set options for all selected tables

Under Default table options, a change applies to every selected table. If tables have different settings, the option shows Mixed. Pick a value to give them all the same.

The Tables node: Default table options with Copy, If it exists, Match source and Table, then Type mapping

Copy structure and data

OptionWhat it copies
StructureCreates the destination table.
DataCopies the rows.
IndexesCopies indexes for tables that have them.
Foreign keysCopies foreign keys for tables that have them.

Clear Data to create structure without rows. Clear Structure when destination tables already exist and only their rows should be copied.

Table engine, character set and collation

For a MySQL destination, the Table row sets Engine, Charset and Collation. Set one charset before choosing a collation. Other destinations do not show settings they cannot apply.

Handle existing destination tables

Under If it exists, choose what happens when a destination table already exists. The line under the choice turns orange when it removes data.

ChoiceWhat happens when the destination table exists
Drop and recreateDrops the table and creates it again. Its rows are lost.
Empty it firstKeeps the structure and deletes its rows before the copy.
Add rowsKeeps the structure and rows, then adds the copied rows.

A run that drops or empties a destination table asks you to confirm.

Add rows fails on a row whose key is already in the destination. Use one of the other two when a fresh copy is required.

Bring existing tables in line with the source

When a destination table exists and is not dropped, DBConvert can change its definitions to match the source. Under Match source, select what to change:

OptionWhat it does to an existing destination table
Column typesAlters each column to the source type, for example CHAR(5) to VARCHAR(50).
IndexesDrops and recreates indexes that the source defines differently.
Foreign keysDrops and recreates foreign keys that the source defines differently.

Column types changes columns that already hold data. A narrower type can truncate or lose values. DBConvert asks before turning it on for every table.

In synchronization, Column types is not offered for a table whose columns are mapped onto existing destination columns. Their types are kept.

Change a column type in every table

Under Type mapping, the Tables node lists each source type in the selected tables, with how many columns have it. Next to it is the destination type they get.

  1. Find the source type, for example CHAR.
  2. In its row, choose the destination type, for example VARCHAR. Types that keep every value are listed first, under Safe for this type.
  3. For a type with a length, leave the length box empty to keep each column's own length.

Type mapping: one row per source type with its column count, CHAR mapped to VARCHAR and marked Mapped

The row's status says Mapped, or Lossy when the type can lose part of a value. Hover Lossy to see why.

A type chosen on a column wins over the row. The row shows how many columns have their own type; click it to give them the row's type too.

The rule is saved with the job. Columns the source gains later, and scheduled runs, get it too.

Override one table

Select the table in the Customization tree. Its Copy, If it exists, Match source and, where available, Table settings change only that table. The overrides defaults label shows that it differs from the Tables settings.

One table in Customization: Copy, If it exists, Match source, Table and Rows with Filter rows, above its column list

An option the table cannot use is greyed out. A table without indexes cannot copy them; hover the box to see why.

Click Reset to defaults to use the Tables settings again. This does not change the table rename, row filter or column mappings.

Copy a subset of rows

Under Rows, click Filter rows… to set a SQL WHERE condition. Only rows that match it are copied, and the line under the button shows the condition. See Conditional migration and data filters for the syntax and examples.

Columns, indexes and foreign keys

Below a table in the tree are three nodes. Each shows a list with one row per item, and you edit in the row.

NodeWhat you change in a row
ColumnsWhether the column is copied, its destination name, and its destination type and length.
IndexesWhether the index is copied. Primary and unique indexes are always copied: the data copy relies on them.
Foreign keysNothing per key. They are copied when Copy has Foreign keys on.

In Columns, a type left as (auto) is converted by DBConvert or by Type mapping. The Status column says which. Reset mappings clears the table's renames and types.

For a foreign key, both tables must be in the run, with the referenced columns and their key. Otherwise the destination rejects the key and the run reports it skipped.

Choose which row changes to synchronize

For a synchronization job, the Tables node shows Sync rows instead of If it exists. The settings apply to every selected table:

OptionWhat it does
InsertInserts source rows missing from the destination.
UpdateUpdates destination rows that differ from the source.
DeleteDeletes destination rows that no longer exist in the source.

A selected table can override these settings. For synchronization methods and direction, see How database synchronization works and Trigger-based synchronization.

Change structure during synchronization

On a single table, open Advanced options. Copy is used only when the first synchronization creates the destination table.

Under Match source, select what to change in a destination table that already exists. See Bring existing tables in line with the source.

One table in a synchronization job: Sync rows, Rows, and Advanced options with Copy, Match source and Table