Table modes
Tonic supports the following table modes. Table modes control the number of rows and columns that are copied to the destination database.


In this mode, Tonic copies over all rows and all columns that do not have a generator applied. When a generator is applied to a column, Tonic replaces the data in that column in the output database.


In this mode, Tonic generates an arbitrary number of new rows, as specified by the user, using the generators selected for this table. Using linking and partitioning, you can create complex relationships between columns. Tonic handles generating primary and foreign keys that reflect the distribution (e.g. 1:1 or 1:many) between tables in the source database.


This mode drops all data for this table in the destination database. The table schema and any constraints associated with this table will be included in the output database. If you use this on a table that has a foreign key constraint it will fail during data generation. If this is a requirement, please reach out to [email protected] for assistance.

Preserve destination

This mode preserves the data in the destination database for this table. This feature is primarily used when working with very large tables that don't need to de-identified for each subsequent run once the data exists in the destination. Note that this requires that the destination database already has the same schema.


Incremental mode will only process the changes that have happened to the source table since that last generation. This can greatly reduce generation time for large tables that don't have a lot of changes. The following conditions must be satisfied for this mode to work:
  1. 1.
    The table must have been previously de-identified and exist in the destination database.
  2. 2.
    A reliable updated date column must be present.
  3. 3.
    The table must have a primary key.
We recommend having an index on the date updated field to maximize performance but it is not necessary for this mode to function. This mode currently only supports updates and inserts. Any rows deleted from the source database will remain in the destination.