Dac Deployment options model updates according to STS changes in mssql, SC, dacpac extensions (#18050)

* Dac Deployement options model updates according to STS changes

* Undoing vscode whitespace changes which were added accidentally

* Updated model with dac deploy options display names coming from the STS API

* Combining all exisitng code updates into single branch/pr. it includes mssql model updates and SC/dacpac model, code and testupdates

* sql db proj test failure fix

* STS version bump to 4.0.0.4
This commit is contained in:
Sai Avishkar Sreerama
2022-05-23 23:19:06 -05:00
committed by GitHub
parent 09d9ad0020
commit 36550798f3
13 changed files with 816 additions and 1341 deletions

View File

@@ -96,6 +96,9 @@ export class SchemaCompareOptionsDialog {
this.optionsModel.deploymentOptions = result.defaultDeploymentOptions;
this.optionsChanged = true;
// This will update the Map table with default values
this.optionsModel.InitializeUpdateOptionsMapTable();
await this.updateOptionsTable();
this.optionsFlexBuilder.removeItem(this.optionsTable);
this.optionsFlexBuilder.insertItem(this.optionsTable, 0, { CSSStyles: { 'overflow': 'scroll', 'height': '65vh' } });

View File

@@ -240,85 +240,6 @@ export const ServerRoleMembership: string = localize('SchemaCompare.ServerRoleMe
export const ServerRoles: string = localize('SchemaCompare.ServerRoles', "Server Roles");
export const ServerTriggers: string = localize('SchemaCompare.ServerTriggers', "Server Triggers");
// options descriptions
export const descriptionIgnoreTableOptions: string = localize('SchemaCompare.Description.IgnoreTableOptions', "Specifies whether differences in the table options will be ignored or updated when you publish to a database.");
export const descriptionIgnoreSemicolonBetweenStatements: string = localize('SchemaCompare.Description.IgnoreSemicolonBetweenStatements', "Specifies whether differences in the semi-colons between T-SQL statements will be ignored or updated when you publish to a database.");
export const descriptionIgnoreRouteLifetime: string = localize('SchemaCompare.Description.IgnoreRouteLifetime', "Specifies whether differences in the amount of time that SQL Server retains the route in the routing table should be ignored or updated when you publish to a database.");
export const descriptionIgnoreRoleMembership: string = localize('SchemaCompare.Description.IgnoreRoleMembership', "Specifies whether differences in the role membership of logins should be ignored or updated when you publish to a database.");
export const descriptionIgnoreQuotedIdentifiers: string = localize('SchemaCompare.Description.IgnoreQuotedIdentifiers', "Specifies whether differences in the quoted identifiers setting should be ignored or updated when you publish to a database.");
export const descriptionIgnorePermissions: string = localize('SchemaCompare.Description.IgnorePermissions', "Specifies whether permissions should be ignored.");
export const descriptionIgnorePartitionSchemes: string = localize('SchemaCompare.Description.IgnorePartitionSchemes', "Specifies whether differences in partition schemes and functions should be ignored or updated when you publish to a database.");
export const descriptionIgnoreObjectPlacementOnPartitionScheme: string = localize('SchemaCompare.Description.IgnoreObjectPlacementOnPartitionScheme', "Specifies whether an object\'s placement on a partition scheme should be ignored or updated when you publish to a database.");
export const descriptionIgnoreNotForReplication: string = localize('SchemaCompare.Description.IgnoreNotForReplication', "Specifies whether the not for replication settings should be ignored or updated when you publish to a database.");
export const descriptionIgnoreLoginSids: string = localize('SchemaCompare.Description.IgnoreLoginSids', "Specifies whether differences in the security identification number (SID) should be ignored or updated when you publish to a database.");
export const descriptionIgnoreLockHintsOnIndexes: string = localize('SchemaCompare.Description.IgnoreLockHintsOnIndexes', "Specifies whether differences in the lock hints on indexes should be ignored or updated when you publish to a database.");
export const descriptionIgnoreKeywordCasing: string = localize('SchemaCompare.Description.IgnoreKeywordCasing', "Specifies whether differences in the casing of keywords should be ignored or updated when you publish to a database.");
export const descriptionIgnoreIndexPadding: string = localize('SchemaCompare.Description.IgnoreIndexPadding', "Specifies whether differences in the index padding should be ignored or updated when you publish to a database.");
export const descriptionIgnoreIndexOptions: string = localize('SchemaCompare.Description.IgnoreIndexOptions', "Specifies whether differences in the index options should be ignored or updated when you publish to a database.");
export const descriptionIgnoreIncrement: string = localize('SchemaCompare.Description.IgnoreIncrement', "Specifies whether differences in the increment for an identity column should be ignored or updated when you publish to a database.");
export const descriptionIgnoreIdentitySeed: string = localize('SchemaCompare.Description.IgnoreIdentitySeed', "Specifies whether differences in the seed for an identity column should be ignored or updated when you publish updates to a database.");
export const descriptionIgnoreUserSettingsObjects: string = localize('SchemaCompare.Description.IgnoreUserSettingsObjects', "Specifies whether differences in the user settings objects will be ignored or updated when you publish to a database.");
export const descriptionIgnoreFullTextCatalogFilePath: string = localize('SchemaCompare.Description.IgnoreFullTextCatalogFilePath', "Specifies whether differences in the file path for the full-text catalog should be ignored or whether a warning should be issued when you publish to a database.");
export const descriptionIgnoreWhitespace: string = localize('SchemaCompare.Description.IgnoreWhitespace', "Specifies whether differences in white space will be ignored or updated when you publish to a database.");
export const descriptionIgnoreWithNocheckOnForeignKeys: string = localize('SchemaCompare.Description.IgnoreWithNocheckOnForeignKeys', "Specifies whether differences in the value of the WITH NOCHECK clause for foreign keys will be ignored or updated when you publish to a database.");
export const descriptionVerifyCollationCompatibility: string = localize('SchemaCompare.Description.VerifyCollationCompatibility', "Specifies whether collation compatibility is verified.");
export const descriptionUnmodifiableObjectWarnings: string = localize('SchemaCompare.Description.UnmodifiableObjectWarnings', "Specifies whether warnings should be generated when differences are found in objects that cannot be modified, for example, if the file size or file paths were different for a file.");
export const descriptionTreatVerificationErrorsAsWarnings: string = localize('SchemaCompare.Description.TreatVerificationErrorsAsWarnings', "Specifies whether errors encountered during publish verification should be treated as warnings. The check is performed against the generated deployment plan before the plan is executed against your target database. Plan verification detects problems such as the loss of target-only objects (such as indexes) that must be dropped to make a change. Verification will also detect situations where dependencies (such as a table or view) exist because of a reference to a composite project, but do not exist in the target database. You might choose to do this to get a complete list of all issues, instead of having the publish action stop on the first error.");
export const descriptionScriptRefreshModule: string = localize('SchemaCompare.Description.ScriptRefreshModule', "Include refresh statements at the end of the publish script.");
export const descriptionScriptNewConstraintValidation: string = localize('SchemaCompare.Description.ScriptNewConstraintValidation', "At the end of publish all of the constraints will be verified as one set, avoiding data errors caused by a check or foreign key constraint in the middle of publish. If set to False, your constraints will be published without checking the corresponding data.");
export const descriptionScriptFileSize: string = localize('SchemaCompare.Description.ScriptFileSize', "Controls whether size is specified when adding a file to a filegroup.");
export const descriptionScriptDeployStateChecks: string = localize('SchemaCompare.Description.ScriptDeployStateChecks', "Specifies whether statements are generated in the publish script to verify that the database name and server name match the names specified in the database project.");
export const descriptionScriptDatabaseOptions: string = localize('SchemaCompare.Description.ScriptDatabaseOptions', "Specifies whether target database properties should be set or updated as part of the publish action.");
export const descriptionScriptDatabaseCompatibility: string = localize('SchemaCompare.Description.ScriptDatabaseCompatibility', "Specifies whether differences in the database compatibility should be ignored or updated when you publish to a database.");
export const descriptionScriptDatabaseCollation: string = localize('SchemaCompare.Description.ScriptDatabaseCollation', "Specifies whether differences in the database collation should be ignored or updated when you publish to a database.");
export const descriptionRunDeploymentPlanExecutors: string = localize('SchemaCompare.Description.RunDeploymentPlanExecutors', "Specifies whether DeploymentPlanExecutor contributors should be run when other operations are executed.");
export const descriptionRegisterDataTierApplication: string = localize('SchemaCompare.Description.RegisterDataTierApplication', "Specifies whether the schema is registered with the database server.");
export const descriptionPopulateFilesOnFileGroups: string = localize('SchemaCompare.Description.PopulateFilesOnFileGroups', "Specifies whether a new file is also created when a new FileGroup is created in the target database.");
export const descriptionNoAlterStatementsToChangeClrTypes: string = localize('SchemaCompare.Description.NoAlterStatementsToChangeClrTypes', "Specifies that publish should always drop and re-create an assembly if there is a difference instead of issuing an ALTER ASSEMBLY statement");
export const descriptionIncludeTransactionalScripts: string = localize('SchemaCompare.Description.IncludeTransactionalScripts', "Specifies whether transactional statements should be used where possible when you publish to a database.");
export const descriptionIncludeCompositeObjects: string = localize('SchemaCompare.Description.IncludeCompositeObjects', "Include all composite elements as part of a single publish operation.");
export const descriptionAllowUnsafeRowLevelSecurityDataMovement: string = localize('SchemaCompare.Description.AllowUnsafeRowLevelSecurityDataMovement', "Do not block data motion on a table which has Row Level Security if this property is set to true. Default is false.");
export const descriptionIgnoreWithNocheckOnCheckConstraints: string = localize('SchemaCompare.Description.IgnoreWithNocheckOnCheckConstraints', "Specifies whether differences in the value of the WITH NOCHECK clause for check constraints will be ignored or updated when you publish to a database.");
export const descriptionIgnoreFillFactor: string = localize('SchemaCompare.Description.IgnoreFillFactor', "Specifies whether differences in the fill factor for index storage should be ignored or whether a warning should be issued when you publish to a database.");
export const descriptionIgnoreFileSize: string = localize('SchemaCompare.Description.IgnoreFileSize', "Specifies whether differences in the file sizes should be ignored or whether a warning should be issued when you publish to a database.");
export const descriptionIgnoreFilegroupPlacement: string = localize('SchemaCompare.Description.IgnoreFilegroupPlacement', "Specifies whether differences in the placement of objects in FILEGROUPs should be ignored or updated when you publish to a database.");
export const descriptionDoNotAlterReplicatedObjects: string = localize('SchemaCompare.Description.DoNotAlterReplicatedObjects', "Specifies whether objects that are replicated are identified during verification.");
export const descriptionDoNotAlterChangeDataCaptureObjects: string = localize('SchemaCompare.Description.DoNotAlterChangeDataCaptureObjects', "If true, Change Data Capture objects are not altered.");
export const descriptionDisableAndReenableDdlTriggers: string = localize('SchemaCompare.Description.DisableAndReenableDdlTriggers', "Specifies whether Data Definition Language (DDL) triggers are disabled at the beginning of the publish process and re-enabled at the end of the publish action.");
export const descriptionDeployDatabaseInSingleUserMode: string = localize('SchemaCompare.Description.DeployDatabaseInSingleUserMode', "If true, the database is set to Single User Mode before deploying.");
export const descriptionCreateNewDatabase: string = localize('SchemaCompare.Description.CreateNewDatabase', "Specifies whether the target database should be updated or whether it should be dropped and re-created when you publish to a database.");
export const descriptionCompareUsingTargetCollation: string = localize('SchemaCompare.Description.CompareUsingTargetCollation', "This setting dictates how the database\'s collation is handled during deployment; by default the target database\'s collation will be updated if it does not match the collation specified by the source. When this option is set, the target database\'s (or server\'s) collation should be used.");
export const descriptionCommentOutSetVarDeclarations: string = localize('SchemaCompare.Description.CommentOutSetVarDeclarations', "Specifies whether the declaration of SETVAR variables should be commented out in the generated publish script. You might choose to do this if you plan to specify the values on the command line when you publish by using a tool such as SQLCMD.EXE.");
export const descriptionBlockWhenDriftDetected: string = localize('SchemaCompare.Description.BlockWhenDriftDetected', "Specifies whether to block updating a database whose schema no longer matches its registration or is unregistered.");
export const descriptionBlockOnPossibleDataLoss: string = localize('SchemaCompare.Description.BlockOnPossibleDataLoss', "Specifies that the publish episode should be terminated if there is a possibility of data loss resulting from the publish operation.");
export const descriptionBackupDatabaseBeforeChanges: string = localize('SchemaCompare.Description.BackupDatabaseBeforeChanges', "Backups the database before deploying any changes.");
export const descriptionAllowIncompatiblePlatform: string = localize('SchemaCompare.Description.AllowIncompatiblePlatform', "Specifies whether to attempt the action despite incompatible SQL Server platforms.");
export const descriptionAllowDropBlockingAssemblies: string = localize('SchemaCompare.Description.AllowDropBlockingAssemblies', "This property is used by SqlClr deployment to cause any blocking assemblies to be dropped as part of the deployment plan. By default, any blocking/referencing assemblies will block an assembly update if the referencing assembly needs to be dropped.");
export const descriptionDropConstraintsNotInSource: string = localize('SchemaCompare.Description.DropConstraintsNotInSource', "Specifies whether constraints that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database.");
export const descriptionDropDmlTriggersNotInSource: string = localize('SchemaCompare.Description.DropDmlTriggersNotInSource', "Specifies whether DML triggers that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database.");
export const descriptionDropExtendedPropertiesNotInSource: string = localize('SchemaCompare.Description.DropExtendedPropertiesNotInSource', "Specifies whether extended properties that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database.");
export const descriptionDropIndexesNotInSource: string = localize('SchemaCompare.Description.DropIndexesNotInSource', "Specifies whether indexes that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database.");
export const descriptionIgnoreFileAndLogFilePath: string = localize('SchemaCompare.Description.IgnoreFileAndLogFilePath', "Specifies whether differences in the paths for files and log files should be ignored or updated when you publish to a database.");
export const descriptionIgnoreExtendedProperties: string = localize('SchemaCompare.Description.IgnoreExtendedProperties', "Specifies whether extended properties should be ignored.");
export const descriptionIgnoreDmlTriggerState: string = localize('SchemaCompare.Description.IgnoreDmlTriggerState', "Specifies whether differences in the enabled or disabled state of DML triggers should be ignored or updated when you publish to a database.");
export const descriptionIgnoreDmlTriggerOrder: string = localize('SchemaCompare.Description.IgnoreDmlTriggerOrder', "Specifies whether differences in the order of Data Manipulation Language (DML) triggers should be ignored or updated when you publish to a database.");
export const descriptionIgnoreDefaultSchema: string = localize('SchemaCompare.Description.IgnoreDefaultSchema', "Specifies whether differences in the default schema should be ignored or updated when you publish to a database.");
export const descriptionIgnoreDdlTriggerState: string = localize('SchemaCompare.Description.IgnoreDdlTriggerState', "Specifies whether differences in the enabled or disabled state of Data Definition Language (DDL) triggers should be ignored or updated when you publish to a database.");
export const descriptionIgnoreDdlTriggerOrder: string = localize('SchemaCompare.Description.IgnoreDdlTriggerOrder', "Specifies whether differences in the order of Data Definition Language (DDL) triggers should be ignored or updated when you publish to a database or server.");
export const descriptionIgnoreCryptographicProviderFilePath: string = localize('SchemaCompare.Description.IgnoreCryptographicProviderFilePath', "Specifies whether differences in the file path for the cryptographic provider should be ignored or updated when you publish to a database.");
export const descriptionVerifyDeployment: string = localize('SchemaCompare.Description.VerifyDeployment', "Specifies whether checks should be performed before publishing that will stop the publish action if issues are present that might block successful publishing. For example, your publish action might stop if you have foreign keys on the target database that do not exist in the database project, and that will cause errors when you publish.");
export const descriptionIgnoreComments: string = localize('SchemaCompare.Description.IgnoreComments', "Specifies whether differences in the comments should be ignored or updated when you publish to a database.");
export const descriptionIgnoreColumnCollation: string = localize('SchemaCompare.Description.IgnoreColumnCollation', "Specifies whether differences in the column collations should be ignored or updated when you publish to a database.");
export const descriptionIgnoreAuthorizer: string = localize('SchemaCompare.Description.IgnoreAuthorizer', "Specifies whether differences in the Authorizer should be ignored or updated when you publish to a database.");
export const descriptionIgnoreAnsiNulls: string = localize('SchemaCompare.Description.IgnoreAnsiNulls', "Specifies whether differences in the ANSI NULLS setting should be ignored or updated when you publish to a database.");
export const descriptionGenerateSmartDefaults: string = localize('SchemaCompare.Description.GenerateSmartDefaults', "Automatically provides a default value when updating a table that contains data with a column that does not allow null values.");
export const descriptionDropStatisticsNotInSource: string = localize('SchemaCompare.Description.DropStatisticsNotInSource', "Specifies whether statistics that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database.");
export const descriptionDropRoleMembersNotInSource: string = localize('SchemaCompare.Description.DropRoleMembersNotInSource', "Specifies whether role members that are not defined in the database snapshot (.dacpac) file will be dropped from the target database when you publish updates to a database.</");
export const descriptionDropPermissionsNotInSource: string = localize('SchemaCompare.Description.DropPermissionsNotInSource', "Specifies whether permissions that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish updates to a database.");
export const descriptionDropObjectsNotInSource: string = localize('SchemaCompare.Description.DropObjectsNotInSource', "Specifies whether objects that do not exist in the database snapshot (.dacpac) file will be dropped from the target database when you publish to a database. This value takes precedence over DropExtendedProperties.");
export const descriptionIgnoreColumnOrder: string = localize('SchemaCompare.Description.IgnoreColumnOrder', "Specifies whether differences in table column order should be ignored or updated when you publish to a database.");
// Error messages
export function compareErrorMessage(errorMessage: string): string { return localize('schemaCompare.compareErrorMessage', "Schema Compare failed: {0}", errorMessage ? errorMessage : 'Unknown'); }
export function saveScmpErrorMessage(errorMessage: string): string { return localize('schemaCompare.saveScmpErrorMessage', "Save scmp failed: '{0}'", (errorMessage) ? errorMessage : 'Unknown'); }

View File

@@ -4,11 +4,12 @@
*--------------------------------------------------------------------------------------------*/
import * as should from 'should';
import {SchemaCompareOptionsDialog} from '../../dialogs/schemaCompareOptionsDialog';
import * as testUtils from '../testUtils';
import { SchemaCompareOptionsDialog } from '../../dialogs/schemaCompareOptionsDialog';
describe('Schema Compare Options Dialog', () => {
it('Should open dialog successfully ', async function (): Promise<void> {
const optionsDialog = new SchemaCompareOptionsDialog(undefined, undefined);
const optionsDialog = new SchemaCompareOptionsDialog(testUtils.getDeploymentOptions(), undefined);
await optionsDialog.openDialog();
should.notEqual(optionsDialog.dialog, undefined);
});

View File

@@ -4,24 +4,24 @@
*--------------------------------------------------------------------------------------------*/
import * as should from 'should';
import * as mssql from 'mssql';
import * as testUtils from '../testUtils';
import { SchemaCompareOptionsModel } from '../../models/schemaCompareOptionsModel';
describe('Schema Compare Options Model', () => {
it('Should create model and set options successfully', function (): void {
const model = new SchemaCompareOptionsModel(defaultOptions);
const model = new SchemaCompareOptionsModel(testUtils.getDeploymentOptions());
should.notEqual(model.getOptionsData(), undefined, 'Options shouldn\'t be undefined');
should.notEqual(model.getObjectsData(), undefined, 'Objects shouldn\'t be undefined');
should.doesNotThrow(() => model.setDeploymentOptions());
should.doesNotThrow(() => model.setObjectTypeOptions());
should(model.getSchemaCompareOptionUtil('')).be.false('Should return false if an invalid option is passed in');
should(model.getSchemaCompareOptionUtil('')).equal(undefined, 'Should return undefined if an invalid option is passed in');
should(model.getSchemaCompareIncludedObjectsUtil('')).be.false('Should return false if invalid object name is passed in');
});
it('Should exclude objects', function (): void {
const model = new SchemaCompareOptionsModel(defaultOptions);
const model = new SchemaCompareOptionsModel(testUtils.getDeploymentOptions());
should(model.excludedObjectTypes.length).be.equal(0, 'There should be no excluded objects');
model.objectTypeLabels.forEach(l => {
@@ -32,90 +32,9 @@ describe('Schema Compare Options Model', () => {
});
it('Should get descriptions', function (): void {
const model = new SchemaCompareOptionsModel(defaultOptions);
const model = new SchemaCompareOptionsModel(testUtils.getDeploymentOptions());
model.optionsLabels.forEach(l => {
should(model.getDescription(l)).not.equal(undefined);
});
});
});
const defaultOptions: mssql.DeploymentOptions = {
ignoreTableOptions: false,
ignoreSemicolonBetweenStatements: false,
ignoreRouteLifetime: false,
ignoreRoleMembership: false,
ignoreQuotedIdentifiers: false,
ignorePermissions: false,
ignorePartitionSchemes: false,
ignoreObjectPlacementOnPartitionScheme: false,
ignoreNotForReplication: false,
ignoreLoginSids: false,
ignoreLockHintsOnIndexes: false,
ignoreKeywordCasing: false,
ignoreIndexPadding: false,
ignoreIndexOptions: false,
ignoreIncrement: false,
ignoreIdentitySeed: false,
ignoreUserSettingsObjects: false,
ignoreFullTextCatalogFilePath: false,
ignoreWhitespace: false,
ignoreWithNocheckOnForeignKeys: false,
verifyCollationCompatibility: false,
unmodifiableObjectWarnings: false,
treatVerificationErrorsAsWarnings: false,
scriptRefreshModule: false,
scriptNewConstraintValidation: false,
scriptFileSize: false,
scriptDeployStateChecks: false,
scriptDatabaseOptions: false,
scriptDatabaseCompatibility: false,
scriptDatabaseCollation: false,
runDeploymentPlanExecutors: false,
registerDataTierApplication: false,
populateFilesOnFileGroups: false,
noAlterStatementsToChangeClrTypes: false,
includeTransactionalScripts: false,
includeCompositeObjects: false,
allowUnsafeRowLevelSecurityDataMovement: false,
ignoreWithNocheckOnCheckConstraints: false,
ignoreFillFactor: false,
ignoreFileSize: false,
ignoreFilegroupPlacement: false,
doNotAlterReplicatedObjects: false,
doNotAlterChangeDataCaptureObjects: false,
disableAndReenableDdlTriggers: false,
deployDatabaseInSingleUserMode: false,
createNewDatabase: false,
compareUsingTargetCollation: false,
commentOutSetVarDeclarations: false,
blockWhenDriftDetected: false,
blockOnPossibleDataLoss: false,
backupDatabaseBeforeChanges: false,
allowIncompatiblePlatform: false,
allowDropBlockingAssemblies: false,
dropConstraintsNotInSource: false,
dropDmlTriggersNotInSource: false,
dropExtendedPropertiesNotInSource: false,
dropIndexesNotInSource: false,
ignoreFileAndLogFilePath: false,
ignoreExtendedProperties: false,
ignoreDmlTriggerState: false,
ignoreDmlTriggerOrder: false,
ignoreDefaultSchema: false,
ignoreDdlTriggerState: false,
ignoreDdlTriggerOrder: false,
ignoreCryptographicProviderFilePath: false,
verifyDeployment: false,
ignoreComments: false,
ignoreColumnCollation: false,
ignoreAuthorizer: false,
ignoreAnsiNulls: false,
generateSmartDefaults: false,
dropStatisticsNotInSource: false,
dropRoleMembersNotInSource: false,
dropPermissionsNotInSource: false,
dropObjectsNotInSource: false,
ignoreColumnOrder: false,
doNotDropObjectTypes: [],
excludeObjectTypes: [mssql.SchemaObjectType.Tables]
};

View File

@@ -152,3 +152,103 @@ export function setDatabaseEndpointInfo(): mssql.SchemaCompareEndpointInfo {
return endpointInfo;
}
export function getDeploymentOptions(): mssql.DeploymentOptions {
const sampleDesc = 'Sample Description text';
const sampleName = 'Sample Display Name';
return {
ignoreTableOptions: { value: false, description: sampleDesc, displayName: sampleName },
ignoreSemicolonBetweenStatements: { value: false, description: sampleDesc, displayName: sampleName },
ignoreRouteLifetime: { value: false, description: sampleDesc, displayName: sampleName },
ignoreRoleMembership: { value: false, description: sampleDesc, displayName: sampleName },
ignoreQuotedIdentifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignorePermissions: { value: false, description: sampleDesc, displayName: sampleName },
ignorePartitionSchemes: { value: false, description: sampleDesc, displayName: sampleName },
ignoreObjectPlacementOnPartitionScheme: { value: false, description: sampleDesc, displayName: sampleName },
ignoreNotForReplication: { value: false, description: sampleDesc, displayName: sampleName },
ignoreLoginSids: { value: false, description: sampleDesc, displayName: sampleName },
ignoreLockHintsOnIndexes: { value: false, description: sampleDesc, displayName: sampleName },
ignoreKeywordCasing: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIndexPadding: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIndexOptions: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIncrement: { value: false, description: sampleDesc, displayName: sampleName },
ignoreIdentitySeed: { value: false, description: sampleDesc, displayName: sampleName },
ignoreUserSettingsObjects: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFullTextCatalogFilePath: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWhitespace: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWithNocheckOnForeignKeys: { value: false, description: sampleDesc, displayName: sampleName },
verifyCollationCompatibility: { value: false, description: sampleDesc, displayName: sampleName },
unmodifiableObjectWarnings: { value: false, description: sampleDesc, displayName: sampleName },
treatVerificationErrorsAsWarnings: { value: false, description: sampleDesc, displayName: sampleName },
scriptRefreshModule: { value: false, description: sampleDesc, displayName: sampleName },
scriptNewConstraintValidation: { value: false, description: sampleDesc, displayName: sampleName },
scriptFileSize: { value: false, description: sampleDesc, displayName: sampleName },
scriptDeployStateChecks: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseOptions: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseCompatibility: { value: false, description: sampleDesc, displayName: sampleName },
scriptDatabaseCollation: { value: false, description: sampleDesc, displayName: sampleName },
runDeploymentPlanExecutors: { value: false, description: sampleDesc, displayName: sampleName },
registerDataTierApplication: { value: false, description: sampleDesc, displayName: sampleName },
populateFilesOnFileGroups: { value: false, description: sampleDesc, displayName: sampleName },
noAlterStatementsToChangeClrTypes: { value: false, description: sampleDesc, displayName: sampleName },
includeTransactionalScripts: { value: false, description: sampleDesc, displayName: sampleName },
includeCompositeObjects: { value: false, description: sampleDesc, displayName: sampleName },
allowUnsafeRowLevelSecurityDataMovement: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWithNocheckOnCheckConstraints: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFillFactor: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFileSize: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFilegroupPlacement: { value: false, description: sampleDesc, displayName: sampleName },
doNotAlterReplicatedObjects: { value: false, description: sampleDesc, displayName: sampleName },
doNotAlterChangeDataCaptureObjects: { value: false, description: sampleDesc, displayName: sampleName },
disableAndReenableDdlTriggers: { value: false, description: sampleDesc, displayName: sampleName },
deployDatabaseInSingleUserMode: { value: false, description: sampleDesc, displayName: sampleName },
createNewDatabase: { value: false, description: sampleDesc, displayName: sampleName },
compareUsingTargetCollation: { value: false, description: sampleDesc, displayName: sampleName },
commentOutSetVarDeclarations: { value: false, description: sampleDesc, displayName: sampleName },
blockWhenDriftDetected: { value: false, description: sampleDesc, displayName: sampleName },
blockOnPossibleDataLoss: { value: false, description: sampleDesc, displayName: sampleName },
backupDatabaseBeforeChanges: { value: false, description: sampleDesc, displayName: sampleName },
allowIncompatiblePlatform: { value: false, description: sampleDesc, displayName: sampleName },
allowDropBlockingAssemblies: { value: false, description: sampleDesc, displayName: sampleName },
dropConstraintsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropDmlTriggersNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropExtendedPropertiesNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropIndexesNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
ignoreFileAndLogFilePath: { value: false, description: sampleDesc, displayName: sampleName },
ignoreExtendedProperties: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDmlTriggerState: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDmlTriggerOrder: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDefaultSchema: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDdlTriggerState: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDdlTriggerOrder: { value: false, description: sampleDesc, displayName: sampleName },
ignoreCryptographicProviderFilePath: { value: false, description: sampleDesc, displayName: sampleName },
verifyDeployment: { value: false, description: sampleDesc, displayName: sampleName },
ignoreComments: { value: false, description: sampleDesc, displayName: sampleName },
ignoreColumnCollation: { value: false, description: sampleDesc, displayName: sampleName },
ignoreAuthorizer: { value: false, description: sampleDesc, displayName: sampleName },
ignoreAnsiNulls: { value: false, description: sampleDesc, displayName: sampleName },
generateSmartDefaults: { value: false, description: sampleDesc, displayName: sampleName },
dropStatisticsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropRoleMembersNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropPermissionsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
dropObjectsNotInSource: { value: false, description: sampleDesc, displayName: sampleName },
ignoreColumnOrder: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
excludeObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
ignoreTablePartitionOptions: { value: false, description: sampleDesc, displayName: sampleName },
doNotEvaluateSqlCmdVariables: { value: false, description: sampleDesc, displayName: sampleName },
disableParallelismForEnablingIndexes: { value: false, description: sampleDesc, displayName: sampleName },
disableIndexesForDataPhase: { value: false, description: sampleDesc, displayName: sampleName },
restoreSequenceCurrentValue: { value: false, description: sampleDesc, displayName: sampleName },
rebuildIndexesOfflineForDataPhase: { value: false, description: sampleDesc, displayName: sampleName },
isAlwaysEncryptedParameterizationEnabled: { value: false, description: sampleDesc, displayName: sampleName },
preserveIdentityLastValues: { value: false, description: sampleDesc, displayName: sampleName },
allowExternalLibraryPaths: { value: false, description: sampleDesc, displayName: sampleName },
allowExternalLanguagePaths: { value: false, description: sampleDesc, displayName: sampleName },
hashObjectNamesInLogs: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropWorkloadClassifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignoreWorkloadClassifiers: { value: false, description: sampleDesc, displayName: sampleName },
ignoreDatabaseWorkloadGroups: { value: false, description: sampleDesc, displayName: sampleName },
doNotDropDatabaseWorkloadGroups: { value: false, description: sampleDesc, displayName: sampleName }
};
}