Table Modes


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.


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. Currently only available for SQL Server

  2. The table must have been previously masked and exist in the destination database.

  3. A reliable updated date column must be present.

  4. 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.

Preserve Destination

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


This mode drops all data for this table in the output 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.