Applies to
ApexSQL Diff and ApexSQL Diff for MySQL
Summary
ApexSQL Diff and ApexSQL Diff for MySQL have the Summary and warnings step in their database Synchronization wizard that provides warnings to a user before the synchronization of the destination data sources is started.
Description
To get to the Summary and warnings step, where all pre-sychronization warnings will be listed, first, the source and destination data sources need to be set, and the Compare button needs to be clicked:
|
Quick tip:
If there is a need to filter out objects before the comparison, check out how to narrow database schema comparison and synchronization to affected objects only |
Once the comparison is finished, check all desired objects for the database synchronization process and click the Synchronize button from the Home tab:
In the first step of the Synchronization wizard, the synchronization direction is shown:
The second step is the Dependencies step in which dependent objects are included by default, but if there is no need for them, they can be unchecked and therefore excluded from the synchronization process:
|
Quick tip:
Omitting dependent objects from the synchronization script can cause failure in the database synchronization process and corresponding warnings will be shown in the last step of the Synchronization wizard before the synchronization process is started |
The Output options step of the Synchronization wizard provides various output actions and corresponding output options that can be set, depending on the destination data source type, but in this case, when a SQL database is a destination and the Synchronize now action is chosen, the Save a copy of the synchronization script and Backup database before synchronization1 options are not checked and the Next button is clicked:
Finally, the last step of the Synchronization wizard provides the Summary and warnings step and as shown in the screenshot below, it reported 3 high and 3 medium warnings that could be potential issues during the database synchronization process:
If there are high warnings in the last step of the Synchronization wizard, like in this example, even when the Synchronize button is clicked, the Warning dialog will be shown as a precautionary measure before running the database synchronization:
Now, let’s look at the list of all potential warnings and messages that could appear in the Summary and warnings step of the Synchronization wizard, along with cases description when these warnings and messages could appear:
Priority |
Warning |
Message |
Case |
|
|
Low |
Application role {0} will be created with default password |
Application role password cannot be retrieved. Default password will be added. You should specify password manually |
When the password can’t be retrieved, and the default one is generated |
|
Low |
Cannot alter Identity [{0}] on table {1}. Table will be rebuilt |
Source and destination tables differ in identity attributes. Identity columns cannot be altered. Table will be rebuilt to synchronize this difference |
When the table has differences in identities |
|
Low |
User [{0}] will be created with default password [{1}] |
User [{0}] has been created with default password [{1}]. |
When the password can’t be retrieved, and the default is generated |
|
Medium |
{0} {1} cannot be decrypted. Their dependencies won’t be included into the script |
Encrypted object {1} cannot be decrypted in SQL Server 2005/2008. Object dependencies won’t be included into the script. Script execution may result in errors |
Additional warning for the high warning regarding description below |
|
Medium |
Cannot alter column [{0}] with associated XML schema collection on table {1} |
Column in source table contains associated xml schema collection. The table will be rebuilt to synchronize this difference |
The table is recreated instead of altered if it has differences in XML schema collections for columns |
|
Medium |
Cannot alter computed column [{0}] on table {1} |
Source and destination tables differ in computed columns. Computed columns cannot be altered. The column will be recreated to synchronize this difference |
When the table has differences in computed columns |
|
Medium |
Cannot synchronize CLR object or data type {0} to database with version less than 90 |
Cannot script CLR object or data type to database with version less than 90. SQL object of an appropriate type with empty body will be created |
When synchronizing CLR object or data type from SQL database 2005 to SQL database 2000 |
|
Medium |
Column order in table {0} will be changed |
Source and destination tables differ in column order and option Ignore Column Order is ON. Table will be rebuilt to make columns order equal |
When compared tables have differences in column order |
|
Medium |
Dropping column [{0}].[{1}] may cause data loss |
Script contains Drop column statement. Dropping column(s) may cause data loss |
When a table column is dropped |
|
Medium |
Dropping the schema {0} may cause data loss |
Dropping a schema may cause data loss. Please set Include Dependencies ON or select the objects that belong to this schema manually |
When schema object is dropped |
|
Medium |
Enabling Change tracking in table {0} may cause script failure |
Synchronization script contains actions which enable Change tracking in table {0}. This change may cause script failure if database change tracking is disabled |
When synchronizing Change tracking feature |
|
Medium |
Fulltext index will be added to the table {0}. Transaction will be split |
Fulltext index will be added to the database. Make sure fulltext is enabled on the target database. Please note that fulltext indexes cannot be created within user transaction and database synchronization script will be split into several transactions |
When synchronizing fulltext indexes |
|
Medium |
New user {0} will be created in destination database |
New user {0} will be created in destination database. Make sure that appropriate login, certificate, asymmetric key, windows user or group exist |
When creating a new SQL user object |
|
Medium |
Not all objects are loaded due to Object filter settings |
Synchronization script execution may fail because not all objects required for successful creation of dependent objects are loaded due to Object filter settings |
When the Object filter feature is used in the New project window |
|
Medium |
Not FileTable table {0} cannot be converted to FileTable. Table will be rebuilt |
Source and destination tables differ in ‘FileTable’ attribute. Table {0} will be rebuilt to synchronize the difference |
When there are differences in FileTables |
|
Medium |
Synchronization of assembly [{0}] may fail |
Synchronization of assembly [{0}] may cause script failure in database with version less than 100 |
When synchronizing assembly to SQL database version earlier than 2008 |
|
Medium |
Synchronization of CLR type [{0}] may fail |
Synchronization script contains actions which creates CLR type with class which already has a bound CLR type. These changes may cause script failure |
When a table has columns with CLR types and when there are differences in CLR name of the assembly name |
|
Medium |
The filegroup of table {0} will be changed |
Source and destination tables [{0}] differ in file groups. Table will be rebuilt to synchronize the difference. (You can use Ignore Filegroups/Dataspaces option to ignore this difference) |
When the table has differences in filegroups |
|
Medium |
Using Exclude schema/owner option may cause script failure |
Using Exclude schema/owner option from Manage owners option group may cause script failure for [{0}] object |
When the Exclude schema option is selected in the Options tab od the New project window |
|
{0} {1} cannot be decrypted. Its body can’t be compared and synchronized |
Encrypted object {1} cannot be decrypted in SQL Server 2005/2008. Its body can’t be compared and synchronized. Only permissions, extended properties will be synchronized |
When encrypted SQL objects like SQL procedure cannot be decrypted |
|
|
High |
Adding Not null column [{0}] to table {1} without default may cause script failure |
Synchronization script contains actions which add Not null column without default. The table will be rebuilt. Script will fail if table contains data |
When the Not null columns are added with defaults |
|
High |
Altering column [{0}] for table {1} may cause script failure |
Synchronization script contains actions which alter column. This change may cause script failure |
When table column types are different and column is being altered |
|
High |
Altering column [{0}] in table {1} with built-in type may cause script failure |
Synchronization script contains actions which alter column [{0}] in table {1} from a built-in type to a user-defined type. This change may cause data loss or script failure |
When the source column is user-defined and destination is the system type |
|
High |
Altering column [{0}] in table {1} with user-defined type may cause script failure |
Synchronization script contains actions which alter column [{0}] in table {1} from user-defined type to a built-in type. This change may cause data loss or script failure |
See previous warning |
|
High |
Cannot synchronize CLR object or data type {0} to SQL Azure database |
Cannot script CLR object or data type to SQL Azure Database. SQL object of an appropriate type with empty body will be created |
When synchronizing CLR object or data type to Azure SQL Database |
|
High |
Cannot synchronize table-valued type {0} to a database with a version that’s less than 100 |
Synchronization script contains actions which creates table-valued type {0}. Table-valued types are not supported in database with version less than 100 |
When synchronizing table-valued type to SQL database version earlier than 2008 |
|
High |
Changing column from [{0}] to [{1}] on table {2} may cause data loss or script failure |
Synchronization script contains actions which change the associated xml schema collection for a column. This change may cause table data loss or script failure |
Differences in XML schema collection may cause script failure – it depends on data in such columns |
|
High |
Changing column [{0}] from Null to Not null in table {1} may cause data loss or script failure |
Synchronization script contains actions which change column from Null to Not null. Script may fail or cause data loss |
When changing from Null to Not null columns |
|
High |
Changing column length in [{0}] for table {1} may cause data loss or script failure |
Synchronization script contains actions which change column length. These changes may cause table data loss or script failure |
When source column length is less than destination – char (High) vs. char (10) |
|
High |
Changing column precision or scale in [{0}] for table {1} may cause data loss or script failure |
Synchronization script contains actions which change column precision or scale. These changes may cause table data loss or script failure |
When source column precision or scale are less than destination for floating types |
|
High |
Change tracking property for table {0} is not supported |
Change tracking property for table {0} is not supported in database with version less than 100. Property won’t be scripted |
When synchronizing Change tracking property for a table to SQL database version earlier than 2008 |
|
High |
Change tracking property for table {0} is not supported in Azure SQL Database |
Change tracking property for table {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Change tracking property for a table to Azure SQL Database |
|
High |
Column [{0}] on table {1} has unsupported type |
Column [{0}] on table {1} has geography, geometry or hierarchyid type. These are not supported in database with version less than 100 |
When synchronizing column on a table that has geography, geometry or hierarchyid type to SQL database version earlier than 2008 |
|
High |
Column_set property for column [{0}] on table {1} is not supported |
Column_set property for column [{0}] on table {1} is not supported in database with version less than 100. Property won’t be scripted |
When synchronizing Column_set property for a column to SQL database version earlier than 2008 |
|
High |
Columnstore index {0} is not supported in Azure SQL Database |
Columnstore index {0} is not supported in Azure SQL Database. Index won’t be scripted |
When synchronizing Columnstore index to Azure SQL Database |
|
High |
Copying data of column [{0}] on table {1} may cause script failure |
Synchronization script contains Cast statements in data preservation queries. These statements may cause script failure |
When table column types are different, the table is recreated and data is copied |
|
High |
Cryptographic provider name for credential {0} is not supported |
Cryptographic provider name for credential {0} is not supported in database with version less than 100. Attribute won’t be scripted |
When synchronizing cryptographic provider name for a credential to SQL database version earlier than 2008 |
|
High |
Data_compresion property for table {0} is not supported |
Data_compresion property for table {0} is not supported in database with version less than 100. Property won’t be scripted |
When synchronizing Data_compresion property for a table to SQL database version earlier than 2008 |
|
High |
Data_compresion property for table {0} is not supported in Azure SQL Database |
Data_compresion property for table {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Data_compresion property for a table to Azure SQL Database |
|
High |
DateTime2 type for column [{0}] on table {1} is not supported |
DateTime2 type for column [{0}] on table {1} is not supported in database with version less than 100. Column won’t be scripted |
When synchronizing DateTime2 type for a column on a table to SQL database version earlier than 2008 |
|
High |
DateTimeOffset type for column [{0}] on table {1} is not supported |
DateTimeOffset type for column [{0}] on table {1} is not supported in database with version less than 100. Column won’t be scripted |
When synchronizing DateTimeOffset type for a column on a table to SQL database version earlier than 2008 |
|
High |
Date type for column [{0}] on table {1} is not supported |
Date type for column [{0}] on table {1} is not supported in database with version less than 100. Column won’t be scripted |
When synchronizing Date type for a column on a table to SQL database version earlier than 2008 |
|
High |
Data type with ‘max’ length for column [{0}] on table {1} is not supported |
Data type with ‘max’ length for column [{0}] on table {1} is not supported in database with version less than 90 |
When synchronizing Data type with ‘max’ length for a column on a table to SQL database version earlier than 2005 |
|
High |
Dropping or recreating table [{0}] may cause table data loss |
Script contains Drop statements for table. These statements may cause table data loss |
When a table is dropped |
|
High |
Encrypted object {0} is not supported in Azure SQL Database |
Encrypted object {0} is not supported in Azure SQL Database. Script execution may result in errors |
When synchronizing encrypted object to Azure SQL Database |
|
High |
Filestream property for column [{0}] on table {1} is not supported in Azure SQL Database |
Filestream property for column [{0}] on table {1} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Filestream property for column on a the table to Azure SQL Database |
|
High |
FileTable {0} is not supported in Azure SQL Database |
FileTable {0} is not supported in Azure SQL Database. Table won’t be scripted |
When synchronizing FileTable to Azure SQL Database |
|
High |
Fillfactor property of index {0} is not supported in Azure SQL Database |
Fillfactor property of index {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Fillfactor property of index to Azure SQL Database |
|
High |
Fulltext index on table {1} is not supported in Azure SQL Database |
Fulltext index on table {1} is not supported in Azure SQL Database. Index won’t be scripted |
When synchronizing Fulltext index on table to Azure SQL Database |
|
High |
Fulltext stoplist {0} is not supported |
Fulltext stoplist {0} is not supported in database with version less than 100. Object won’t be scripted |
When synchronizing Fulltext stoplist to SQL database version earlier than 2008 |
|
High |
Four-part base object name for synonym {0} is not supported in Azure SQL Database |
Four-part base object name for synonym {0} is not supported in Azure SQL Database. Synonym {0} cannot contain server part and this part will be truncated in script |
When synchronizing four-part base object name for a synonym to Azure SQL Database |
|
High |
Login [{0}] for user {1} can be created only in ‘master’ database of Azure SQL Database |
Login {0} for user {1} can be created only in ‘master’ database of Azure SQL Database. Login won’t be scripted |
When synchronizing a login for a user to Azure SQL Database |
|
High |
Memory-optimized table {0} is not supported |
Memory-optimized table {0} is not supported in database with version less than 120. Table will be scripted as standard one (not memory-optimized) |
When synchronizing memory-optimized table to SQL database version earlier than 2014 |
|
High |
Natively compiled procedure {0} is not supported |
Natively compiled procedure {0} is not supported in database with version less than 120. Procedure won’t be scripted |
When synchronizing natively compiled procedure to SQL database version earlier than 2014 |
|
High |
Natively compiled procedure {0} cannot be converted to standard one. Procedure will be recreated |
Source and destination procedures differ in terms of native compilation attribute. Procedure {0} will be dropped and recreated to synchronize the difference |
When synchronizing natively compiled procedure to a standard one to Azure SQL Database |
|
High |
Not for replication property for trigger {0} is not supported in Azure SQL Database |
Not for replication property for trigger {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Not for replication property for a trigger to Azure SQL Database |
|
High |
Pad_index property of index {0} is not supported in Azure SQL Database |
Pad_index property of index {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Pad_index property of index to Azure SQL Database |
|
High |
Rowguidcol property for column {0} on table {1} is not supported in Azure SQL Database |
Rowguidcol property for column [{0}] on table {1} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing Rowguidcol property for a column on a table to Azure SQL Database |
|
High |
Search property list {0} is not supported |
Search property list {0} is not supported in database with version less than 110. Object won’t be scripted |
When synchronizing Search property list to SQL database version earlier than 2012 |
|
High |
Sparse property for column [{0}] on table {1} is not supported |
Sparse property for column [{0}] on table {1} is not supported in database with version less than 100. Property won’t be scripted |
When synchronizing Sparse property for a column on a table to SQL database version earlier than 2008 |
|
High |
Spatial index [{0}] on table {1} is not supported |
Spatial index [{0}] on table {1} is not supported in database with version less than 100. Index won’t be scripted |
When synchronizing Spatial index on a table to SQL database version earlier than 2008 |
|
High |
Synchronization of memory-optimized objects in transaction cause script failure. You need to uncheck Include transaction handling in synchronization script option |
Synchronization of memory-optimized objects in transaction cause script failure. You need to uncheck Include transaction handling in synchronization script option |
When memory-optimized objects are being synchronized and the Include transaction handling in database synchronization script option is checked under the Options tab of the New project window |
|
High |
Synchronization of memory-optimized objects may cause script failure if destination database doesn’t have a memory-optimized filegroup |
Synchronization of memory-optimized objects may cause script failure if destination database doesn’t have a memory-optimized filegroup |
When filegroups are not previously manually created in the destination data source for the database synchronization of memory-optimized objects |
|
High |
The extended properties of object {0} are not supported in Azure SQL Database |
The extended properties of object {0} are not supported in Azure SQL Database. Properties won’t be scripted |
When synchronizing the extended properties of an object to Azure SQL Database |
|
High |
The filegroup of table {0} is not supported in Azure SQL Database |
The filegroup of table {0} is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing the filegroup of the table to Azure SQL Database |
|
High |
Time type for column [{0}] on table {1} is not supported |
Time type for column [{0}] on table {1} is not supported in database with version less than 100. Column won’t be scripted |
When synchronizing Time type for a column on a table to SQL database version earlier than 2008 |
|
High |
User {0} with Certificate or Asymmetric_key argument is not supported in Azure SQL Database |
User {0} with Certificate or Asymmetric_key argument is not supported in Azure SQL Database. {0} won’t be scripted |
When synchronizing user with Certificate or Asymmetric_key argument to Azure SQL Database |
|
High |
With encryption property for procedure {0} is not supported in Azure SQL Database |
With encryption property for procedure [{0}] is not supported in Azure SQL Database. Property won’t be scripted |
When synchronizing With encryption property for a procedure to Azure SQL Database |
|
High |
XML type for column [{0}] on table {1} is not supported |
XML type for column [{0}] on table {1} is not supported in database with version less than 90. Column will be scripted as Ntext |
When synchronizing XML type for column on a table to SQL database version earlier than 2005 |
|
High |
XML schema collection {0} cannot be applied to column {1} |
XML schema collection {0} cannot be applied to column {1} because XML schema collections are not supported in Azure SQL Database. Column will be scripted as usual XML column |
When synchronizing XML schema collection on a column to Azure SQL Database |
1 Backup database before synchronization is only applicable in ApexSQL Diff