KS DB Merge Tools logo KS DB Merge Tools
Documentation
KS DB Merge Tools for MySQL logo for MySQL
and MariaDB
KS DB Merge Tools for Oracle logo
MssqlMerge logo
KS DB Merge Tools for PostgreSQL logo
KS DB Merge Tools for SQLite logo
AccdbMerge logo
KS DB Merge Tools for Cross-DBMS logo

Settings Dialog

This dialog is used to setup application settings:

for MySQL, settings dialog

Application settings are organized into tabs and groups with comprehensive descriptions. Below is the content of the dialog with some comments.

Database Open

Object types and filters

Check object types you want to load.

Object type list columns: Object type, Load

This list specifies which object definitions will be loaded and compared. When you open a database, the application reads all chosen object definitions from the database and keeps them in memory. For a large database it takes some time. Or, maybe you're not interested in some changes at all. Using these settings you can specify which objects you need to load. So, by disabling some object types, you can speed up database open process and keep your focus only on objects you need. Please note that if you omit some object type, then this can prevent some further merge actions. For example, stored procedure (SP) can depend on some view. If you need to merge this SP to the other side, then you will have to merge that view first. But if you'll disable views loading, then you will not able to do this and on merge you'll get an error from the database server that referenced view does not exist in the target database.

Database open/reload

If you open new database and have some opened tabs (other than Home tab), application may ask you to close them because these tabs may become outdated. The default option is:
Proceed and close outdated tabs (recommended)
Open new application instance
Confirm these options every time

It is the defaults for the Database reload dialog.

Database list filter

Exclude these DB names from dropdown in the 'Open database' dialog, comma-separated list:
(system database list)

This option removes specified databases from Database dropdown in the Open databases dialog. The default value is sys, mysql, information_schema, performance_schema.

Data Diff

These settings configure the default behaviour of the Data diff tab. String compare options are also related to the Batch data diff and Query result diff tabs.

Paging

Getting data by pages allows to work with large amount of data.
However it may be applied only if both tables have compatible prymary key.
You can specify page size as 0 to disable paging.
Default page size: (value)

Data Merge/Delete

You may select all records on the current data page, but if page size is less than total record count - probably you may want to process the rest of records on other pages. If this setting is enabled, then Data Merge/Delete will process all pages. Otherwise only current page is processed.
Process all pages   ☐ Confirm this every time

If the generated script will contain UPDATE statements, it can include all or only changed column values. In the last case, script will not be generated for unchanged rows.
Update only changed columns   ☐ Confirm this every time

Data Export

Similarly to the data merge, if page size is less than total record count - application may ask you to whether you want to export all data pages or only the current one. Note that if any row is selected on any side, then only selected rows from the current page are exported (even if you select all rows on the current page).
Export all pages
Confirm this every time

String compare options

These options affects batch data diff and the default state of text compare toolbar buttons for data diff. Batch data diff results needs to be re-calculated and any opened data diff tab needs to be refreshed to use updated options.
Case insensitive
Ignore leading and trailing whitespaces
Along with ignoring other whitespace changes, the last option also makes equal NULL and empty string

String compare options defines the default state of the Case insensitive and Ignore leading and trailing whitespaces vertical toolbar action states for the Data diff and Query result diff tabs. They also affect calculation logic for the Batch data diff tab.

Text Diff

Text compare options

For all settings on this tab - projects needs to be reopened to apply updated options.
These options affects not only the default state of text compare toolbar buttons, but they also affects calculation of the changed objects on the Home tab and object list tabs.
Case insensitive
Ignore leading and trailing whitespaces
Ignore ALL whitespaces (within a line)
Ignore empty lines
Below you can specify additional custom text normalization rules to ignore more changes. See help for explanation on how it works. Please note that these options may have a huge schema diff performance impact.

Custom text normalization rules list columns: Enabled, Title, Pattern, Replacement. It is something similar to Ignore case or Ignore whitespace options, but they allow to set up more sophisticated rules. For example, but default this list contains only one disabled rule:

  • Title: Function optional parentheses
  • Pattern: (?<fn>(CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|LOCALTIME|LOCALTIMESTAMP))\(\)
  • Replacement: ${fn}
Let's suppose you have some stored procedure which calls CURRENT_TIMESTAMP function which can be defined with or without parentheses. And on the left side it is used as CURRENT_TIMESTAMP(), on the right side as CURRENT_TIMESTAMP - without parentheses. Functionally both calls do the same work and you may want to ignore such change. This can be achieved using this rule. Rules are based on .NET regex syntax. In our example Pattern defines fn regex variable which contains a function name without parentheses. And then the whole found string (with parentheses) is replaced with a variable value which has only the function name without parentheses. If this rule is enabled, then the application does not calculate missing parentheses text change. If that was the only change in the object definition, then the whole object is considered and counted as unchanged. In the Text diff tab line having such a change is highlighted in yellow (color of ignored change).

The following things needs to be taken into account when you use these rules:

  • These rules are applied for each separate line of each object definition. As a result they can significantly affect performance of objects loading and comparison. And since they are applied for each line - they can't be used for multi-line blocks of code, for example you can't ignore multiline comments using these rules
  • Order of object text processing: 1) whitespace removal ('Ignore whitespace' options), 2) skip empty lines, 3) custom normalization rules, by the order they are defined in Settings
  • Custom normalization is combined with 'Ignore case' option
  • Rule with invalid regex syntax in Pattern or Replacement will be ignored (however it will slow down objects processing as well)

Misc.

Application appearance

Don't resize toolbar on application zoom
Max tab header width: (value)

Don't resize toolbar on application zoom allows to keep toolbar unchanged when you zoom application UI using and zoom toolbar actions.

Ambiguous object names due to case differences

There can be the cases when object names are case-insensitive but have case differences in their names, for example on the left it is [MyTable] and on the right it is [myTABLE]. Application needs to handle it as the same object and there are places where it needs to show only one object name (for example in the Object List excel export or in the Batch Data Diff). Specify from which comparison side this name should be taken:
Left
Right

Reports

Default report file format: ○ *.xlsx   ○ *.json
Any report needs to be saved to the file:
Ask new report file name every time
Auto-generate report file names and save to specified folder:
(reports folder path)
Open generated report

Local cache

This folder is used to store temporary copy of object definitions, binary and string data and generated data merge scripts.
Note that it's better to change this option without any projects/databases loaded, otherwise some old cache files may be not cleaned up in the old folder.
(local cache folder path)

Free Version Limitations

  • The whole dialog is not available

Last updated: 2025-04-07