mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-04-03 18:40:29 -04:00
OptionsMapTable logic to replace the deployment hardcoded values final (#19789)
* OptionsMapTable logic to replace the deployment hardcoded values final * Test modifiaction * OptionsMApTable updates with STS and review commetns * comments added and option string moved to constants file * Reverting the options button css related change and will put in other PR * converted optionsMapTable to custom type and references. * Options prop changes and model updates * Reset btn event method name fixed * removed local booleanOptionDict var and using the existing one * updated code with removed local vars * Update to booleanOptionsDictionary name * merged two variable to one * Refactoring code and updating variables * separated lookup and data array and refactor * missing visibility * reset logic revised and no other edgecases found * variable names updated to meaningful * vbump here to test the checks, sending new vbump PR separately
This commit is contained in:
committed by
GitHub
parent
84a15ea91d
commit
89816c9ff3
@@ -64,99 +64,11 @@ export class DacFxTestService implements mssql.IDacFxService {
|
|||||||
success: true,
|
success: true,
|
||||||
errorMessage: '',
|
errorMessage: '',
|
||||||
deploymentOptions: {
|
deploymentOptions: {
|
||||||
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 },
|
excludeObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
|
||||||
ignoreTablePartitionOptions: { value: false, description: sampleDesc, displayName: sampleName },
|
booleanOptionsDictionary: {
|
||||||
doNotEvaluateSqlCmdVariables: { value: false, description: sampleDesc, displayName: sampleName },
|
'SampleProperty1': { value: false, description: sampleDesc, displayName: sampleName },
|
||||||
disableParallelismForEnablingIndexes: { value: false, description: sampleDesc, displayName: sampleName },
|
'SampleProperty2': { 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 }
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
114
extensions/mssql/src/mssql.d.ts
vendored
114
extensions/mssql/src/mssql.d.ts
vendored
@@ -153,112 +153,40 @@ declare module 'mssql' {
|
|||||||
defaultDeploymentOptions: DeploymentOptions;
|
defaultDeploymentOptions: DeploymentOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface containing deployment options of boolean type
|
||||||
|
*/
|
||||||
export interface DacDeployOptionPropertyBoolean {
|
export interface DacDeployOptionPropertyBoolean {
|
||||||
value: boolean;
|
value: boolean;
|
||||||
description: string;
|
description: string;
|
||||||
displayName: string;
|
displayName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface containing deployment options of integer type, value property holds values from <DacFx>\Product\Source\DeploymentApi\ObjectTypes.cs enum
|
||||||
|
*/
|
||||||
export interface DacDeployOptionPropertyObject {
|
export interface DacDeployOptionPropertyObject {
|
||||||
value: SchemaObjectType[];
|
value: number[];
|
||||||
description: string;
|
description: string;
|
||||||
displayName: string;
|
displayName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Interface containing Deployment options from <DacFx>\Source\DeploymentApi\DacDeployOptions.cs
|
||||||
|
* These property names should match with the properties defined in <sqltoolsservice>\src\Microsoft.SqlTools.ServiceLayer\DacFx\Contracts\DeploymentOptions.cs
|
||||||
|
*/
|
||||||
export interface DeploymentOptions {
|
export interface DeploymentOptions {
|
||||||
ignoreTableOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreSemicolonBetweenStatements: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreRouteLifetime: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreRoleMembership: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreQuotedIdentifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignorePermissions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignorePartitionSchemes: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreObjectPlacementOnPartitionScheme: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreNotForReplication: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreLoginSids: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreLockHintsOnIndexes: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreKeywordCasing: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIndexPadding: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIndexOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIncrement: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIdentitySeed: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreUserSettingsObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFullTextCatalogFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWhitespace: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWithNocheckOnForeignKeys: DacDeployOptionPropertyBoolean;
|
|
||||||
verifyCollationCompatibility: DacDeployOptionPropertyBoolean;
|
|
||||||
unmodifiableObjectWarnings: DacDeployOptionPropertyBoolean;
|
|
||||||
treatVerificationErrorsAsWarnings: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptRefreshModule: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptNewConstraintValidation: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptFileSize: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDeployStateChecks: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseCompatibility: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
runDeploymentPlanExecutors: DacDeployOptionPropertyBoolean;
|
|
||||||
registerDataTierApplication: DacDeployOptionPropertyBoolean;
|
|
||||||
populateFilesOnFileGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
noAlterStatementsToChangeClrTypes: DacDeployOptionPropertyBoolean;
|
|
||||||
includeTransactionalScripts: DacDeployOptionPropertyBoolean;
|
|
||||||
includeCompositeObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
allowUnsafeRowLevelSecurityDataMovement: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWithNocheckOnCheckConstraints: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFillFactor: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFileSize: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFilegroupPlacement: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotAlterReplicatedObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotAlterChangeDataCaptureObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
disableAndReenableDdlTriggers: DacDeployOptionPropertyBoolean;
|
|
||||||
deployDatabaseInSingleUserMode: DacDeployOptionPropertyBoolean;
|
|
||||||
createNewDatabase: DacDeployOptionPropertyBoolean;
|
|
||||||
compareUsingTargetCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
commentOutSetVarDeclarations: DacDeployOptionPropertyBoolean;
|
|
||||||
blockWhenDriftDetected: DacDeployOptionPropertyBoolean;
|
|
||||||
blockOnPossibleDataLoss: DacDeployOptionPropertyBoolean;
|
|
||||||
backupDatabaseBeforeChanges: DacDeployOptionPropertyBoolean;
|
|
||||||
allowIncompatiblePlatform: DacDeployOptionPropertyBoolean;
|
|
||||||
allowDropBlockingAssemblies: DacDeployOptionPropertyBoolean;
|
|
||||||
dropConstraintsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropDmlTriggersNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropExtendedPropertiesNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropIndexesNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFileAndLogFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreExtendedProperties: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDmlTriggerState: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDmlTriggerOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDefaultSchema: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDdlTriggerState: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDdlTriggerOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreCryptographicProviderFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
verifyDeployment: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreComments: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreColumnCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreAuthorizer: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreAnsiNulls: DacDeployOptionPropertyBoolean;
|
|
||||||
generateSmartDefaults: DacDeployOptionPropertyBoolean;
|
|
||||||
dropStatisticsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropRoleMembersNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropPermissionsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropObjectsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreColumnOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropObjectTypes: DacDeployOptionPropertyObject;
|
|
||||||
excludeObjectTypes: DacDeployOptionPropertyObject;
|
excludeObjectTypes: DacDeployOptionPropertyObject;
|
||||||
ignoreTablePartitionOptions: DacDeployOptionPropertyBoolean;
|
// key will be the boolean option name
|
||||||
doNotEvaluateSqlCmdVariables: DacDeployOptionPropertyBoolean;
|
booleanOptionsDictionary: { [key: string]: DacDeployOptionPropertyBoolean };
|
||||||
disableParallelismForEnablingIndexes: DacDeployOptionPropertyBoolean;
|
}
|
||||||
disableIndexesForDataPhase: DacDeployOptionPropertyBoolean;
|
|
||||||
restoreSequenceCurrentValue: DacDeployOptionPropertyBoolean;
|
/*
|
||||||
rebuildIndexesOfflineForDataPhase: DacDeployOptionPropertyBoolean;
|
* Interface containing option value and option name
|
||||||
isAlwaysEncryptedParameterizationEnabled: DacDeployOptionPropertyBoolean;
|
*/
|
||||||
preserveIdentityLastValues: DacDeployOptionPropertyBoolean;
|
export interface IOptionWithValue {
|
||||||
allowExternalLibraryPaths: DacDeployOptionPropertyBoolean;
|
optionName: string;
|
||||||
allowExternalLanguagePaths: DacDeployOptionPropertyBoolean;
|
checked: boolean;
|
||||||
hashObjectNamesInLogs: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropWorkloadClassifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWorkloadClassifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDatabaseWorkloadGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropDatabaseWorkloadGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ export const ResetButton: string = localize('reset', "Reset");
|
|||||||
export const OptionDescription: string = localize('optionDescription', "Option Description");
|
export const OptionDescription: string = localize('optionDescription', "Option Description");
|
||||||
export const OptionName: string = localize('optionName', "Option Name");
|
export const OptionName: string = localize('optionName', "Option Name");
|
||||||
export const OptionInclude: string = localize('Include', "Include");
|
export const OptionInclude: string = localize('Include', "Include");
|
||||||
|
export function OptionNotFoundWarningMessage(label: string) { return localize('OptionNotFoundWarningMessage', "label: {0} does not exist in the options value name lookup", label); }
|
||||||
|
|
||||||
// Deploy
|
// Deploy
|
||||||
export const SqlServerName = 'SQL server';
|
export const SqlServerName = 'SQL server';
|
||||||
|
|||||||
@@ -325,17 +325,16 @@ export async function defaultAzureAccountServiceFactory(): Promise<vscodeMssql.I
|
|||||||
export async function getDefaultPublishDeploymentOptions(project: ISqlProject): Promise<mssql.DeploymentOptions | vscodeMssql.DeploymentOptions> {
|
export async function getDefaultPublishDeploymentOptions(project: ISqlProject): Promise<mssql.DeploymentOptions | vscodeMssql.DeploymentOptions> {
|
||||||
const schemaCompareService = await getSchemaCompareService();
|
const schemaCompareService = await getSchemaCompareService();
|
||||||
const result = await schemaCompareService.schemaCompareGetDefaultOptions();
|
const result = await schemaCompareService.schemaCompareGetDefaultOptions();
|
||||||
const deploymentOptions = result.defaultDeploymentOptions;
|
|
||||||
// re-include database-scoped credentials
|
// re-include database-scoped credentials
|
||||||
if (getAzdataApi()) {
|
if (getAzdataApi()) {
|
||||||
deploymentOptions.excludeObjectTypes.value = (deploymentOptions as mssql.DeploymentOptions).excludeObjectTypes.value?.filter(x => x !== mssql.SchemaObjectType.DatabaseScopedCredentials);
|
result.defaultDeploymentOptions.excludeObjectTypes.value = (result.defaultDeploymentOptions as mssql.DeploymentOptions).excludeObjectTypes.value?.filter(x => x !== mssql.SchemaObjectType.DatabaseScopedCredentials);
|
||||||
} else {
|
} else {
|
||||||
deploymentOptions.excludeObjectTypes.value = (deploymentOptions as vscodeMssql.DeploymentOptions).excludeObjectTypes.value?.filter(x => x !== vscodeMssql.SchemaObjectType.DatabaseScopedCredentials);
|
result.defaultDeploymentOptions.excludeObjectTypes.value = (result.defaultDeploymentOptions as vscodeMssql.DeploymentOptions).excludeObjectTypes.value?.filter(x => x !== vscodeMssql.SchemaObjectType.DatabaseScopedCredentials);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this option needs to be true for same database references validation to work
|
// this option needs to be true for same database references validation to work
|
||||||
if (project.databaseReferences.length > 0 && deploymentOptions.includeCompositeObjects !== undefined) {
|
if (project.databaseReferences.length > 0) {
|
||||||
deploymentOptions.includeCompositeObjects.value = true;
|
result.defaultDeploymentOptions.booleanOptionsDictionary.includeCompositeObjects.value = true;
|
||||||
}
|
}
|
||||||
return result.defaultDeploymentOptions;
|
return result.defaultDeploymentOptions;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,7 +291,6 @@ export class PublishDatabaseDialog {
|
|||||||
// We only use the dialog in ADS context currently so safe to cast to the mssql DeploymentOptions here
|
// We only use the dialog in ADS context currently so safe to cast to the mssql DeploymentOptions here
|
||||||
this.deploymentOptions = await utils.getDefaultPublishDeploymentOptions(this.project) as DeploymentOptions;
|
this.deploymentOptions = await utils.getDefaultPublishDeploymentOptions(this.project) as DeploymentOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.deploymentOptions;
|
return this.deploymentOptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -74,10 +74,12 @@ export class PublishOptionsDialog {
|
|||||||
|
|
||||||
// Get the description of the selected option
|
// Get the description of the selected option
|
||||||
this.disposableListeners.push(this.optionsTable.onRowSelected(async () => {
|
this.disposableListeners.push(this.optionsTable.onRowSelected(async () => {
|
||||||
|
// selectedRows[0] contains selected row number
|
||||||
const row = this.optionsTable?.selectedRows![0];
|
const row = this.optionsTable?.selectedRows![0];
|
||||||
const label = this.optionsModel.optionsLabels[row!];
|
// data[row][1] contains the option display name
|
||||||
|
const displayName = this.optionsTable?.data[row!][1];
|
||||||
await this.descriptionText?.updateProperties({
|
await this.descriptionText?.updateProperties({
|
||||||
value: this.optionsModel.getDescription(label)
|
value: this.optionsModel.getOptionDescription(displayName)
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -85,8 +87,9 @@ export class PublishOptionsDialog {
|
|||||||
this.disposableListeners.push(this.optionsTable.onCellAction!((rowState) => {
|
this.disposableListeners.push(this.optionsTable.onCellAction!((rowState) => {
|
||||||
const checkboxState = <azdataType.ICheckboxCellActionEventArgs>rowState;
|
const checkboxState = <azdataType.ICheckboxCellActionEventArgs>rowState;
|
||||||
if (checkboxState && checkboxState.row !== undefined) {
|
if (checkboxState && checkboxState.row !== undefined) {
|
||||||
const label = this.optionsModel.optionsLabels[checkboxState.row];
|
// data[row][1] contains the option display name
|
||||||
this.optionsModel.optionsLookup[label] = checkboxState.checked;
|
const displayName = this.optionsTable?.data[checkboxState.row][1];
|
||||||
|
this.optionsModel.setOptionValue(displayName, checkboxState.checked);
|
||||||
this.optionsChanged = true;
|
this.optionsChanged = true;
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@@ -137,7 +140,9 @@ export class PublishOptionsDialog {
|
|||||||
* Ok button click, will update the deployment options with selections
|
* Ok button click, will update the deployment options with selections
|
||||||
*/
|
*/
|
||||||
protected execute(): void {
|
protected execute(): void {
|
||||||
|
// Update the model deploymentoptions with the updated table component values
|
||||||
this.optionsModel.setDeploymentOptions();
|
this.optionsModel.setDeploymentOptions();
|
||||||
|
// Set the publish deploymentoptions with the updated table component values
|
||||||
this.publish.setDeploymentOptions(this.optionsModel.deploymentOptions);
|
this.publish.setDeploymentOptions(this.optionsModel.deploymentOptions);
|
||||||
this.disposeListeners();
|
this.disposeListeners();
|
||||||
|
|
||||||
@@ -160,8 +165,8 @@ export class PublishOptionsDialog {
|
|||||||
const result = await this.publish.getDefaultDeploymentOptions();
|
const result = await this.publish.getDefaultDeploymentOptions();
|
||||||
this.optionsModel.deploymentOptions = result;
|
this.optionsModel.deploymentOptions = result;
|
||||||
|
|
||||||
// This will update the Map table with default values
|
// reset optionsvalueNameLookup with default deployment options
|
||||||
this.optionsModel.InitializeUpdateOptionsMapTable();
|
this.optionsModel.setOptionsToValueNameLookup();
|
||||||
|
|
||||||
await this.updateOptionsTable();
|
await this.updateOptionsTable();
|
||||||
this.optionsFlexBuilder?.removeItem(this.optionsTable!);
|
this.optionsFlexBuilder?.removeItem(this.optionsTable!);
|
||||||
|
|||||||
@@ -4,254 +4,69 @@
|
|||||||
*--------------------------------------------------------------------------------------------*/
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
import * as mssql from 'mssql';
|
import * as mssql from 'mssql';
|
||||||
|
import * as vscode from 'vscode';
|
||||||
|
import * as constants from '../../common/constants';
|
||||||
|
|
||||||
export class DeployOptionsModel {
|
export class DeployOptionsModel {
|
||||||
public deploymentOptions: mssql.DeploymentOptions;
|
// key is the option display name and values are checkboxValue and optionName
|
||||||
|
private optionsValueNameLookup: { [key: string]: mssql.IOptionWithValue } = {};
|
||||||
|
|
||||||
public optionsLookup: Record<string, boolean> = {};
|
constructor(public deploymentOptions: mssql.DeploymentOptions) {
|
||||||
public optionsMapTable: Record<string, mssql.DacDeployOptionPropertyBoolean> = {};
|
this.setOptionsToValueNameLookup();
|
||||||
|
|
||||||
constructor(defaultOptions: mssql.DeploymentOptions) {
|
|
||||||
this.deploymentOptions = defaultOptions;
|
|
||||||
this.InitializeUpdateOptionsMapTable();
|
|
||||||
this.InitializeOptionsLabels();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the options mapping table
|
* Sets deployment option's checkbox values and property name to the optionsValueNameLookup map
|
||||||
* This will map the key:Option_DisplayName to the value:DacFx_OptionsValue
|
|
||||||
*/
|
*/
|
||||||
public InitializeUpdateOptionsMapTable() {
|
public setOptionsToValueNameLookup(): void {
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreTableOptions.displayName] = this.deploymentOptions.ignoreTableOptions;
|
Object.entries(this.deploymentOptions.booleanOptionsDictionary).forEach(option => {
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreSemicolonBetweenStatements.displayName] = this.deploymentOptions.ignoreSemicolonBetweenStatements;
|
const optionValue: mssql.IOptionWithValue = {
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreRouteLifetime.displayName] = this.deploymentOptions.ignoreRouteLifetime;
|
optionName: option[0],
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreRoleMembership.displayName] = this.deploymentOptions.ignoreRoleMembership;
|
checked: option[1].value
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreQuotedIdentifiers.displayName] = this.deploymentOptions.ignoreQuotedIdentifiers;
|
};
|
||||||
this.optionsMapTable[this.deploymentOptions.ignorePermissions.displayName] = this.deploymentOptions.ignorePermissions;
|
this.optionsValueNameLookup[option[1].displayName] = optionValue;
|
||||||
this.optionsMapTable[this.deploymentOptions.ignorePartitionSchemes.displayName] = this.deploymentOptions.ignorePartitionSchemes;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreObjectPlacementOnPartitionScheme.displayName] = this.deploymentOptions.ignoreObjectPlacementOnPartitionScheme;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreNotForReplication.displayName] = this.deploymentOptions.ignoreNotForReplication;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreLoginSids.displayName] = this.deploymentOptions.ignoreLoginSids;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreLockHintsOnIndexes.displayName] = this.deploymentOptions.ignoreLockHintsOnIndexes;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreKeywordCasing.displayName] = this.deploymentOptions.ignoreKeywordCasing;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreIndexPadding.displayName] = this.deploymentOptions.ignoreIndexPadding;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreIndexOptions.displayName] = this.deploymentOptions.ignoreIndexOptions;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreIncrement.displayName] = this.deploymentOptions.ignoreIncrement;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreIdentitySeed.displayName] = this.deploymentOptions.ignoreIdentitySeed;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreUserSettingsObjects.displayName] = this.deploymentOptions.ignoreUserSettingsObjects;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreFullTextCatalogFilePath.displayName] = this.deploymentOptions.ignoreFullTextCatalogFilePath;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreWhitespace.displayName] = this.deploymentOptions.ignoreWhitespace;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreWithNocheckOnForeignKeys.displayName] = this.deploymentOptions.ignoreWithNocheckOnForeignKeys;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.verifyCollationCompatibility.displayName] = this.deploymentOptions.verifyCollationCompatibility;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.unmodifiableObjectWarnings.displayName] = this.deploymentOptions.unmodifiableObjectWarnings;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.treatVerificationErrorsAsWarnings.displayName] = this.deploymentOptions.treatVerificationErrorsAsWarnings;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptRefreshModule.displayName] = this.deploymentOptions.scriptRefreshModule;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptNewConstraintValidation.displayName] = this.deploymentOptions.scriptNewConstraintValidation;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptFileSize.displayName] = this.deploymentOptions.scriptFileSize;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptDeployStateChecks.displayName] = this.deploymentOptions.scriptDeployStateChecks;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptDatabaseOptions.displayName] = this.deploymentOptions.scriptDatabaseOptions;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptDatabaseCompatibility.displayName] = this.deploymentOptions.scriptDatabaseCompatibility;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.scriptDatabaseCollation.displayName] = this.deploymentOptions.scriptDatabaseCollation;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.runDeploymentPlanExecutors.displayName] = this.deploymentOptions.runDeploymentPlanExecutors;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.registerDataTierApplication.displayName] = this.deploymentOptions.registerDataTierApplication;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.populateFilesOnFileGroups.displayName] = this.deploymentOptions.populateFilesOnFileGroups;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.noAlterStatementsToChangeClrTypes.displayName] = this.deploymentOptions.noAlterStatementsToChangeClrTypes;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.includeTransactionalScripts.displayName] = this.deploymentOptions.includeTransactionalScripts;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.includeCompositeObjects.displayName] = this.deploymentOptions.includeCompositeObjects;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.allowUnsafeRowLevelSecurityDataMovement.displayName] = this.deploymentOptions.allowUnsafeRowLevelSecurityDataMovement;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreWithNocheckOnCheckConstraints.displayName] = this.deploymentOptions.ignoreWithNocheckOnCheckConstraints;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreFillFactor.displayName] = this.deploymentOptions.ignoreFillFactor;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreFileSize.displayName] = this.deploymentOptions.ignoreFileSize;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreFilegroupPlacement.displayName] = this.deploymentOptions.ignoreFilegroupPlacement;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.doNotAlterReplicatedObjects.displayName] = this.deploymentOptions.doNotAlterReplicatedObjects;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.doNotAlterChangeDataCaptureObjects.displayName] = this.deploymentOptions.doNotAlterChangeDataCaptureObjects;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.disableAndReenableDdlTriggers.displayName] = this.deploymentOptions.disableAndReenableDdlTriggers;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.deployDatabaseInSingleUserMode.displayName] = this.deploymentOptions.deployDatabaseInSingleUserMode;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.createNewDatabase.displayName] = this.deploymentOptions.createNewDatabase;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.compareUsingTargetCollation.displayName] = this.deploymentOptions.compareUsingTargetCollation;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.commentOutSetVarDeclarations.displayName] = this.deploymentOptions.commentOutSetVarDeclarations;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.blockWhenDriftDetected.displayName] = this.deploymentOptions.blockWhenDriftDetected;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.blockOnPossibleDataLoss.displayName] = this.deploymentOptions.blockOnPossibleDataLoss;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.backupDatabaseBeforeChanges.displayName] = this.deploymentOptions.backupDatabaseBeforeChanges;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.allowIncompatiblePlatform.displayName] = this.deploymentOptions.allowIncompatiblePlatform;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.allowDropBlockingAssemblies.displayName] = this.deploymentOptions.allowDropBlockingAssemblies;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropConstraintsNotInSource.displayName] = this.deploymentOptions.dropConstraintsNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropDmlTriggersNotInSource.displayName] = this.deploymentOptions.dropDmlTriggersNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropExtendedPropertiesNotInSource.displayName] = this.deploymentOptions.dropExtendedPropertiesNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropIndexesNotInSource.displayName] = this.deploymentOptions.dropIndexesNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreFileAndLogFilePath.displayName] = this.deploymentOptions.ignoreFileAndLogFilePath;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreExtendedProperties.displayName] = this.deploymentOptions.ignoreExtendedProperties;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDmlTriggerState.displayName] = this.deploymentOptions.ignoreDmlTriggerState;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDmlTriggerOrder.displayName] = this.deploymentOptions.ignoreDmlTriggerOrder;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDefaultSchema.displayName] = this.deploymentOptions.ignoreDefaultSchema;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDdlTriggerState.displayName] = this.deploymentOptions.ignoreDdlTriggerState;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDdlTriggerOrder.displayName] = this.deploymentOptions.ignoreDdlTriggerOrder;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreCryptographicProviderFilePath.displayName] = this.deploymentOptions.ignoreCryptographicProviderFilePath;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.verifyDeployment.displayName] = this.deploymentOptions.verifyDeployment;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreComments.displayName] = this.deploymentOptions.ignoreComments;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreColumnCollation.displayName] = this.deploymentOptions.ignoreColumnCollation;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreAuthorizer.displayName] = this.deploymentOptions.ignoreAuthorizer;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreAnsiNulls.displayName] = this.deploymentOptions.ignoreAnsiNulls;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.generateSmartDefaults.displayName] = this.deploymentOptions.generateSmartDefaults;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropStatisticsNotInSource.displayName] = this.deploymentOptions.dropStatisticsNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropRoleMembersNotInSource.displayName] = this.deploymentOptions.dropRoleMembersNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropPermissionsNotInSource.displayName] = this.deploymentOptions.dropPermissionsNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.dropObjectsNotInSource.displayName] = this.deploymentOptions.dropObjectsNotInSource;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreColumnOrder.displayName] = this.deploymentOptions.ignoreColumnOrder;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreTablePartitionOptions.displayName] = this.deploymentOptions.ignoreTablePartitionOptions;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.doNotEvaluateSqlCmdVariables.displayName] = this.deploymentOptions.doNotEvaluateSqlCmdVariables;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.disableParallelismForEnablingIndexes.displayName] = this.deploymentOptions.disableParallelismForEnablingIndexes;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.disableIndexesForDataPhase.displayName] = this.deploymentOptions.disableIndexesForDataPhase;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.restoreSequenceCurrentValue.displayName] = this.deploymentOptions.restoreSequenceCurrentValue;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.rebuildIndexesOfflineForDataPhase.displayName] = this.deploymentOptions.rebuildIndexesOfflineForDataPhase;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.preserveIdentityLastValues.displayName] = this.deploymentOptions.preserveIdentityLastValues;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.isAlwaysEncryptedParameterizationEnabled.displayName] = this.deploymentOptions.isAlwaysEncryptedParameterizationEnabled;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.allowExternalLibraryPaths.displayName] = this.deploymentOptions.allowExternalLibraryPaths;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.allowExternalLanguagePaths.displayName] = this.deploymentOptions.allowExternalLanguagePaths;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.hashObjectNamesInLogs.displayName] = this.deploymentOptions.hashObjectNamesInLogs;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.doNotDropWorkloadClassifiers.displayName] = this.deploymentOptions.doNotDropWorkloadClassifiers;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreWorkloadClassifiers.displayName] = this.deploymentOptions.ignoreWorkloadClassifiers;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.ignoreDatabaseWorkloadGroups.displayName] = this.deploymentOptions.ignoreDatabaseWorkloadGroups;
|
|
||||||
this.optionsMapTable[this.deploymentOptions.doNotDropDatabaseWorkloadGroups.displayName] = this.deploymentOptions.doNotDropDatabaseWorkloadGroups;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List of Dac Deploy options to display
|
|
||||||
*/
|
|
||||||
public optionsLabels: string[] = [];
|
|
||||||
public InitializeOptionsLabels() {
|
|
||||||
this.optionsLabels = [this.deploymentOptions.ignoreTableOptions.displayName
|
|
||||||
, this.deploymentOptions.ignoreSemicolonBetweenStatements.displayName
|
|
||||||
, this.deploymentOptions.ignoreRouteLifetime.displayName
|
|
||||||
, this.deploymentOptions.ignoreRoleMembership.displayName
|
|
||||||
, this.deploymentOptions.ignoreQuotedIdentifiers.displayName
|
|
||||||
, this.deploymentOptions.ignorePermissions.displayName
|
|
||||||
, this.deploymentOptions.ignorePartitionSchemes.displayName
|
|
||||||
, this.deploymentOptions.ignoreObjectPlacementOnPartitionScheme.displayName
|
|
||||||
, this.deploymentOptions.ignoreNotForReplication.displayName
|
|
||||||
, this.deploymentOptions.ignoreLoginSids.displayName
|
|
||||||
, this.deploymentOptions.ignoreLockHintsOnIndexes.displayName
|
|
||||||
, this.deploymentOptions.ignoreKeywordCasing.displayName
|
|
||||||
, this.deploymentOptions.ignoreIndexPadding.displayName
|
|
||||||
, this.deploymentOptions.ignoreIndexOptions.displayName
|
|
||||||
, this.deploymentOptions.ignoreIncrement.displayName
|
|
||||||
, this.deploymentOptions.ignoreIdentitySeed.displayName
|
|
||||||
, this.deploymentOptions.ignoreUserSettingsObjects.displayName
|
|
||||||
, this.deploymentOptions.ignoreFullTextCatalogFilePath.displayName
|
|
||||||
, this.deploymentOptions.ignoreWhitespace.displayName
|
|
||||||
, this.deploymentOptions.ignoreWithNocheckOnForeignKeys.displayName
|
|
||||||
, this.deploymentOptions.verifyCollationCompatibility.displayName
|
|
||||||
, this.deploymentOptions.unmodifiableObjectWarnings.displayName
|
|
||||||
, this.deploymentOptions.treatVerificationErrorsAsWarnings.displayName
|
|
||||||
, this.deploymentOptions.scriptRefreshModule.displayName
|
|
||||||
, this.deploymentOptions.scriptNewConstraintValidation.displayName
|
|
||||||
, this.deploymentOptions.scriptFileSize.displayName
|
|
||||||
, this.deploymentOptions.scriptDeployStateChecks.displayName
|
|
||||||
, this.deploymentOptions.scriptDatabaseOptions.displayName
|
|
||||||
, this.deploymentOptions.scriptDatabaseCompatibility.displayName
|
|
||||||
, this.deploymentOptions.scriptDatabaseCollation.displayName
|
|
||||||
, this.deploymentOptions.runDeploymentPlanExecutors.displayName
|
|
||||||
, this.deploymentOptions.registerDataTierApplication.displayName
|
|
||||||
, this.deploymentOptions.populateFilesOnFileGroups.displayName
|
|
||||||
, this.deploymentOptions.noAlterStatementsToChangeClrTypes.displayName
|
|
||||||
, this.deploymentOptions.includeTransactionalScripts.displayName
|
|
||||||
, this.deploymentOptions.includeCompositeObjects.displayName
|
|
||||||
, this.deploymentOptions.allowUnsafeRowLevelSecurityDataMovement.displayName
|
|
||||||
, this.deploymentOptions.ignoreWithNocheckOnCheckConstraints.displayName
|
|
||||||
, this.deploymentOptions.ignoreFillFactor.displayName
|
|
||||||
, this.deploymentOptions.ignoreFileSize.displayName
|
|
||||||
, this.deploymentOptions.ignoreFilegroupPlacement.displayName
|
|
||||||
, this.deploymentOptions.doNotAlterReplicatedObjects.displayName
|
|
||||||
, this.deploymentOptions.doNotAlterChangeDataCaptureObjects.displayName
|
|
||||||
, this.deploymentOptions.disableAndReenableDdlTriggers.displayName
|
|
||||||
, this.deploymentOptions.deployDatabaseInSingleUserMode.displayName
|
|
||||||
, this.deploymentOptions.createNewDatabase.displayName
|
|
||||||
, this.deploymentOptions.compareUsingTargetCollation.displayName
|
|
||||||
, this.deploymentOptions.commentOutSetVarDeclarations.displayName
|
|
||||||
, this.deploymentOptions.blockWhenDriftDetected.displayName
|
|
||||||
, this.deploymentOptions.blockOnPossibleDataLoss.displayName
|
|
||||||
, this.deploymentOptions.backupDatabaseBeforeChanges.displayName
|
|
||||||
, this.deploymentOptions.allowIncompatiblePlatform.displayName
|
|
||||||
, this.deploymentOptions.allowDropBlockingAssemblies.displayName
|
|
||||||
, this.deploymentOptions.dropConstraintsNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropDmlTriggersNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropExtendedPropertiesNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropIndexesNotInSource.displayName
|
|
||||||
, this.deploymentOptions.ignoreFileAndLogFilePath.displayName
|
|
||||||
, this.deploymentOptions.ignoreExtendedProperties.displayName
|
|
||||||
, this.deploymentOptions.ignoreDmlTriggerState.displayName
|
|
||||||
, this.deploymentOptions.ignoreDmlTriggerOrder.displayName
|
|
||||||
, this.deploymentOptions.ignoreDefaultSchema.displayName
|
|
||||||
, this.deploymentOptions.ignoreDdlTriggerState.displayName
|
|
||||||
, this.deploymentOptions.ignoreDdlTriggerOrder.displayName
|
|
||||||
, this.deploymentOptions.ignoreCryptographicProviderFilePath.displayName
|
|
||||||
, this.deploymentOptions.verifyDeployment.displayName
|
|
||||||
, this.deploymentOptions.ignoreComments.displayName
|
|
||||||
, this.deploymentOptions.ignoreColumnCollation.displayName
|
|
||||||
, this.deploymentOptions.ignoreAuthorizer.displayName
|
|
||||||
, this.deploymentOptions.ignoreAnsiNulls.displayName
|
|
||||||
, this.deploymentOptions.generateSmartDefaults.displayName
|
|
||||||
, this.deploymentOptions.dropStatisticsNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropRoleMembersNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropPermissionsNotInSource.displayName
|
|
||||||
, this.deploymentOptions.dropObjectsNotInSource.displayName
|
|
||||||
, this.deploymentOptions.ignoreColumnOrder.displayName
|
|
||||||
, this.deploymentOptions.ignoreTablePartitionOptions.displayName
|
|
||||||
, this.deploymentOptions.doNotEvaluateSqlCmdVariables.displayName
|
|
||||||
, this.deploymentOptions.disableParallelismForEnablingIndexes.displayName
|
|
||||||
, this.deploymentOptions.disableIndexesForDataPhase.displayName
|
|
||||||
, this.deploymentOptions.restoreSequenceCurrentValue.displayName
|
|
||||||
, this.deploymentOptions.rebuildIndexesOfflineForDataPhase.displayName
|
|
||||||
, this.deploymentOptions.preserveIdentityLastValues.displayName
|
|
||||||
, this.deploymentOptions.isAlwaysEncryptedParameterizationEnabled.displayName
|
|
||||||
, this.deploymentOptions.allowExternalLibraryPaths.displayName
|
|
||||||
, this.deploymentOptions.allowExternalLanguagePaths.displayName
|
|
||||||
, this.deploymentOptions.hashObjectNamesInLogs.displayName
|
|
||||||
, this.deploymentOptions.doNotDropWorkloadClassifiers.displayName
|
|
||||||
, this.deploymentOptions.ignoreWorkloadClassifiers.displayName
|
|
||||||
, this.deploymentOptions.ignoreDatabaseWorkloadGroups.displayName
|
|
||||||
, this.deploymentOptions.doNotDropDatabaseWorkloadGroups.displayName].sort();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the options checkbox check value
|
|
||||||
* @returns string[][]
|
|
||||||
*/
|
|
||||||
public getOptionsData(): string[][] {
|
|
||||||
let data: any = [];
|
|
||||||
this.optionsLookup = {};
|
|
||||||
this.optionsLabels.forEach(l => {
|
|
||||||
let checked: boolean = this.getDeployOptionUtil(l);
|
|
||||||
data.push([checked, l]);
|
|
||||||
this.optionsLookup[l] = checked;
|
|
||||||
});
|
});
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public setDeploymentOptions() {
|
|
||||||
for (let option in this.optionsLookup) {
|
|
||||||
this.setDeployOptionUtil(option, this.optionsLookup[option]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sets the selected/changed value of the option
|
* Initialize options data from deployment options for table component
|
||||||
|
* Returns data as [booleanValue, optionName]
|
||||||
*/
|
*/
|
||||||
public setDeployOptionUtil(label: string, value: boolean) {
|
public getOptionsData(): any[][] {
|
||||||
this.optionsMapTable[label].value = value;
|
let data: any[][] = [];
|
||||||
|
Object.entries(this.deploymentOptions.booleanOptionsDictionary).forEach(option => {
|
||||||
|
// option[1] holds checkedbox value and displayName
|
||||||
|
data.push([option[1].value, option[1].displayName]);
|
||||||
|
});
|
||||||
|
|
||||||
|
return data.sort((a, b) => a[1].localeCompare(b[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gets the selected/default value of the option
|
* Sets the selected option checkbox value to the deployment options
|
||||||
*/
|
*/
|
||||||
public getDeployOptionUtil(label: string): boolean {
|
public setDeploymentOptions(): void {
|
||||||
return this.optionsMapTable[label]?.value;
|
Object.entries(this.optionsValueNameLookup).forEach(option => {
|
||||||
|
// option[1] holds checkedbox value and optionName
|
||||||
|
this.deploymentOptions.booleanOptionsDictionary[option[1].optionName].value = option[1].checked;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Gets the description of the option selected
|
* Sets the checkbox value to the optionsValueNameLookup map
|
||||||
*/
|
*/
|
||||||
public getDescription(label: string): string {
|
public setOptionValue(displayName: string, checked: boolean): void {
|
||||||
return this.optionsMapTable[label]?.description;
|
this.optionsValueNameLookup[displayName].checked = checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gets the description of the selected option by getting the option name from the optionsValueNameLookup
|
||||||
|
*/
|
||||||
|
public getOptionDescription(displayName: string): string {
|
||||||
|
const optionName = this.optionsValueNameLookup[displayName];
|
||||||
|
if (optionName === undefined) {
|
||||||
|
void vscode.window.showWarningMessage(constants.OptionNotFoundWarningMessage(displayName));
|
||||||
|
}
|
||||||
|
return optionName !== undefined ? this.deploymentOptions.booleanOptionsDictionary[optionName.optionName].description : '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ describe('Publish Database Options Dialog', () => {
|
|||||||
// Verify the deployment options should exists
|
// Verify the deployment options should exists
|
||||||
should.notEqual(optionsDialog.optionsModel.deploymentOptions, undefined);
|
should.notEqual(optionsDialog.optionsModel.deploymentOptions, undefined);
|
||||||
|
|
||||||
Object.entries(optionsDialog.optionsModel.deploymentOptions).forEach(option => {
|
Object.entries(optionsDialog.optionsModel.deploymentOptions.booleanOptionsDictionary).forEach(option => {
|
||||||
// Validate the value and description as expected
|
// Validate the value and description as expected
|
||||||
should.equal(option[1].value, false);
|
should.equal(option[1].value, false);
|
||||||
should.equal(option[1].description, 'Sample Description text');
|
should.equal(option[1].description, 'Sample Description text');
|
||||||
|
|||||||
@@ -13,19 +13,18 @@ describe('Publish Dialog Deploy Options Model', () => {
|
|||||||
should.notEqual(model.getOptionsData(), undefined, 'Options shouldn\'t be undefined');
|
should.notEqual(model.getOptionsData(), undefined, 'Options shouldn\'t be undefined');
|
||||||
|
|
||||||
should.doesNotThrow(() => model.setDeploymentOptions());
|
should.doesNotThrow(() => model.setDeploymentOptions());
|
||||||
|
|
||||||
should(model.getDeployOptionUtil('')).equal(undefined);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should get description', function (): void {
|
it('Should get description', function (): void {
|
||||||
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
|
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
|
||||||
model.optionsLabels.forEach(l => {
|
Object.entries(model.deploymentOptions.booleanOptionsDictionary).forEach(option => {
|
||||||
should(model.getDescription(l)).not.equal(undefined);
|
// option[1] contains the value, description and displayName
|
||||||
|
should(model.getOptionDescription(option[1].displayName)).not.equal(undefined);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should be undefined for null description', function (): void {
|
it('Should return empty string for null option ', function (): void {
|
||||||
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
|
const model = new DeployOptionsModel(testUtils.getDeploymentOptions());
|
||||||
should(model.getDescription('')).equal(undefined);
|
should(model.getOptionDescription('')).equal('');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -27,99 +27,11 @@ export function getDeploymentOptions(): mssql.DeploymentOptions {
|
|||||||
const sampleDesc = 'Sample Description text';
|
const sampleDesc = 'Sample Description text';
|
||||||
const sampleName = 'Sample Display Name';
|
const sampleName = 'Sample Display Name';
|
||||||
const defaultOptions: mssql.DeploymentOptions = {
|
const defaultOptions: mssql.DeploymentOptions = {
|
||||||
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 },
|
excludeObjectTypes: { value: [], description: sampleDesc, displayName: sampleName },
|
||||||
ignoreTablePartitionOptions: { value: false, description: sampleDesc, displayName: sampleName },
|
booleanOptionsDictionary: {
|
||||||
doNotEvaluateSqlCmdVariables: { value: false, description: sampleDesc, displayName: sampleName },
|
'SampleProperty1': { value: false, description: sampleDesc, displayName: sampleName },
|
||||||
disableParallelismForEnablingIndexes: { value: false, description: sampleDesc, displayName: sampleName },
|
'SampleProperty2': { 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 }
|
|
||||||
};
|
};
|
||||||
return defaultOptions;
|
return defaultOptions;
|
||||||
}
|
}
|
||||||
|
|||||||
105
extensions/types/vscode-mssql.d.ts
vendored
105
extensions/types/vscode-mssql.d.ts
vendored
@@ -489,112 +489,31 @@ declare module 'vscode-mssql' {
|
|||||||
executeAndScript = 2
|
executeAndScript = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface containing deployment options of boolean type
|
||||||
|
*/
|
||||||
export interface DacDeployOptionPropertyBoolean {
|
export interface DacDeployOptionPropertyBoolean {
|
||||||
value: boolean;
|
value: boolean;
|
||||||
description: string;
|
description: string;
|
||||||
displayName: string;
|
displayName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface containing deployment options of integer type, value property holds values from <DacFx>\Product\Source\DeploymentApi\ObjectTypes.cs enum
|
||||||
|
*/
|
||||||
export interface DacDeployOptionPropertyObject {
|
export interface DacDeployOptionPropertyObject {
|
||||||
value: SchemaObjectType[];
|
value: number[];
|
||||||
description: string;
|
description: string;
|
||||||
displayName: string;
|
displayName: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface containing deployment options of integer type, value property holds values from <DacFx>\Product\Source\DeploymentApi\ObjectTypes.cs enum
|
||||||
|
*/
|
||||||
export interface DeploymentOptions {
|
export interface DeploymentOptions {
|
||||||
ignoreTableOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreSemicolonBetweenStatements: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreRouteLifetime: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreRoleMembership: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreQuotedIdentifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignorePermissions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignorePartitionSchemes: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreObjectPlacementOnPartitionScheme: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreNotForReplication: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreLoginSids: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreLockHintsOnIndexes: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreKeywordCasing: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIndexPadding: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIndexOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIncrement: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreIdentitySeed: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreUserSettingsObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFullTextCatalogFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWhitespace: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWithNocheckOnForeignKeys: DacDeployOptionPropertyBoolean;
|
|
||||||
verifyCollationCompatibility: DacDeployOptionPropertyBoolean;
|
|
||||||
unmodifiableObjectWarnings: DacDeployOptionPropertyBoolean;
|
|
||||||
treatVerificationErrorsAsWarnings: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptRefreshModule: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptNewConstraintValidation: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptFileSize: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDeployStateChecks: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseOptions: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseCompatibility: DacDeployOptionPropertyBoolean;
|
|
||||||
scriptDatabaseCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
runDeploymentPlanExecutors: DacDeployOptionPropertyBoolean;
|
|
||||||
registerDataTierApplication: DacDeployOptionPropertyBoolean;
|
|
||||||
populateFilesOnFileGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
noAlterStatementsToChangeClrTypes: DacDeployOptionPropertyBoolean;
|
|
||||||
includeTransactionalScripts: DacDeployOptionPropertyBoolean;
|
|
||||||
includeCompositeObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
allowUnsafeRowLevelSecurityDataMovement: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWithNocheckOnCheckConstraints: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFillFactor: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFileSize: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFilegroupPlacement: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotAlterReplicatedObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotAlterChangeDataCaptureObjects: DacDeployOptionPropertyBoolean;
|
|
||||||
disableAndReenableDdlTriggers: DacDeployOptionPropertyBoolean;
|
|
||||||
deployDatabaseInSingleUserMode: DacDeployOptionPropertyBoolean;
|
|
||||||
createNewDatabase: DacDeployOptionPropertyBoolean;
|
|
||||||
compareUsingTargetCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
commentOutSetVarDeclarations: DacDeployOptionPropertyBoolean;
|
|
||||||
blockWhenDriftDetected: DacDeployOptionPropertyBoolean;
|
|
||||||
blockOnPossibleDataLoss: DacDeployOptionPropertyBoolean;
|
|
||||||
backupDatabaseBeforeChanges: DacDeployOptionPropertyBoolean;
|
|
||||||
allowIncompatiblePlatform: DacDeployOptionPropertyBoolean;
|
|
||||||
allowDropBlockingAssemblies: DacDeployOptionPropertyBoolean;
|
|
||||||
dropConstraintsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropDmlTriggersNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropExtendedPropertiesNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropIndexesNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreFileAndLogFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreExtendedProperties: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDmlTriggerState: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDmlTriggerOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDefaultSchema: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDdlTriggerState: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDdlTriggerOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreCryptographicProviderFilePath: DacDeployOptionPropertyBoolean;
|
|
||||||
verifyDeployment: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreComments: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreColumnCollation: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreAuthorizer: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreAnsiNulls: DacDeployOptionPropertyBoolean;
|
|
||||||
generateSmartDefaults: DacDeployOptionPropertyBoolean;
|
|
||||||
dropStatisticsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropRoleMembersNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropPermissionsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
dropObjectsNotInSource: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreColumnOrder: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropObjectTypes: DacDeployOptionPropertyObject;
|
|
||||||
excludeObjectTypes: DacDeployOptionPropertyObject;
|
excludeObjectTypes: DacDeployOptionPropertyObject;
|
||||||
ignoreTablePartitionOptions: DacDeployOptionPropertyBoolean;
|
// key will be the boolean option name
|
||||||
doNotEvaluateSqlCmdVariables: DacDeployOptionPropertyBoolean;
|
booleanOptionsDictionary: { [key: string]: DacDeployOptionPropertyBoolean };
|
||||||
disableParallelismForEnablingIndexes: DacDeployOptionPropertyBoolean;
|
|
||||||
disableIndexesForDataPhase: DacDeployOptionPropertyBoolean;
|
|
||||||
restoreSequenceCurrentValue: DacDeployOptionPropertyBoolean;
|
|
||||||
rebuildIndexesOfflineForDataPhase: DacDeployOptionPropertyBoolean;
|
|
||||||
isAlwaysEncryptedParameterizationEnabled: DacDeployOptionPropertyBoolean;
|
|
||||||
preserveIdentityLastValues: DacDeployOptionPropertyBoolean;
|
|
||||||
allowExternalLibraryPaths: DacDeployOptionPropertyBoolean;
|
|
||||||
allowExternalLanguagePaths: DacDeployOptionPropertyBoolean;
|
|
||||||
hashObjectNamesInLogs: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropWorkloadClassifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreWorkloadClassifiers: DacDeployOptionPropertyBoolean;
|
|
||||||
ignoreDatabaseWorkloadGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
doNotDropDatabaseWorkloadGroups: DacDeployOptionPropertyBoolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user