Update SC dialog to save/read file structure to/from schema compare file (#22727)

* Read/Send ExtractTarget information from/to STS

* Remove comment

* Cleanup comment and update azdata dependency
This commit is contained in:
Sakshi Sharma
2023-04-14 11:47:59 -07:00
committed by GitHub
parent 18a541b0a6
commit d69e5b97df
8 changed files with 47 additions and 35 deletions

View File

@@ -118,7 +118,7 @@ export class SchemaCompareDialog {
ownerUri: ownerUri,
projectFilePath: '',
targetScripts: [],
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
packageFilePath: '',
dataSchemaProvider: '',
connectionDetails: undefined,
@@ -133,7 +133,7 @@ export class SchemaCompareDialog {
ownerUri: '',
projectFilePath: '',
targetScripts: [],
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
dataSchemaProvider: '',
packageFilePath: this.sourceTextBox.value,
connectionDetails: undefined
@@ -144,7 +144,7 @@ export class SchemaCompareDialog {
projectFilePath: this.sourceTextBox.value,
targetScripts: await this.getProjectScriptFiles(this.sourceTextBox.value),
dataSchemaProvider: await this.getDatabaseSchemaProvider(this.sourceTextBox.value),
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
serverDisplayName: '',
serverName: '',
databaseName: '',
@@ -165,7 +165,7 @@ export class SchemaCompareDialog {
databaseName: this.targetDatabaseDropdown.value.toString(),
ownerUri: ownerUri,
projectFilePath: '',
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
targetScripts: [],
packageFilePath: '',
dataSchemaProvider: '',
@@ -180,7 +180,7 @@ export class SchemaCompareDialog {
databaseName: '',
ownerUri: '',
projectFilePath: '',
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
targetScripts: [],
dataSchemaProvider: '',
packageFilePath: this.targetTextBox.value,
@@ -190,7 +190,7 @@ export class SchemaCompareDialog {
this.schemaCompareMainWindow.targetEndpointInfo = {
endpointType: mssql.SchemaCompareEndpointType.Project,
projectFilePath: this.targetTextBox.value,
folderStructure: mapExtractTargetEnum(<string>this.targetStructureDropdown!.value),
extractTarget: mapExtractTargetEnum(<string>this.targetStructureDropdown!.value),
targetScripts: await this.getProjectScriptFiles(this.targetTextBox.value),
dataSchemaProvider: await this.getDatabaseSchemaProvider(this.targetTextBox.value),
serverDisplayName: '',
@@ -447,13 +447,14 @@ export class SchemaCompareDialog {
}
private createStructureDropdown(): azdata.FormComponent {
const value = !this.schemaCompareMainWindow.targetEndpointInfo ? loc.schemaObjectType : mapExtractTargetToString(this.schemaCompareMainWindow.targetEndpointInfo.extractTarget);
this.targetStructureDropdown = this.view.modelBuilder.dropDown().withProps({
editable: true,
fireOnTextChange: true,
ariaLabel: loc.targetStructure,
width: this.textBoxWidth,
values: [loc.file, loc.flat, loc.objectType, loc.schema, loc.schemaObjectType],
value: loc.schemaObjectType,
value: value,
}).component();
return {
@@ -1029,3 +1030,14 @@ export function mapExtractTargetEnum(inputTarget: string): mssql.ExtractTarget {
default: return mssql.ExtractTarget.schemaObjectType;
}
}
export function mapExtractTargetToString(inputTarget: mssql.ExtractTarget) {
switch (inputTarget) {
case mssql.ExtractTarget.file: return loc.file;
case mssql.ExtractTarget.flat: return loc.flat;
case mssql.ExtractTarget.objectType: return loc.objectType;
case mssql.ExtractTarget.schema: return loc.schema;
case mssql.ExtractTarget.schemaObjectType:
default: return loc.schemaObjectType;
}
}

View File

@@ -131,7 +131,7 @@ export class SchemaCompareMainWindow {
projectFilePath: '',
targetScripts: [],
dataSchemaProvider: '',
folderStructure: mssql.ExtractTarget.schemaObjectType
extractTarget: mssql.ExtractTarget.schemaObjectType
};
} else if (sourceDacpac) {
source = {
@@ -145,7 +145,7 @@ export class SchemaCompareMainWindow {
projectFilePath: '',
targetScripts: [],
dataSchemaProvider: '',
folderStructure: mssql.ExtractTarget.schemaObjectType
extractTarget: mssql.ExtractTarget.schemaObjectType
};
} else if (sourceProject) {
source = {
@@ -159,7 +159,7 @@ export class SchemaCompareMainWindow {
projectFilePath: sourceProject,
targetScripts: [],
dataSchemaProvider: undefined,
folderStructure: mssql.ExtractTarget.schemaObjectType
extractTarget: mssql.ExtractTarget.schemaObjectType
};
}
@@ -889,7 +889,7 @@ export class SchemaCompareMainWindow {
result = await service.schemaComparePublishDatabaseChanges(this.comparisonResult.operationId, this.targetEndpointInfo.serverName, this.targetEndpointInfo.databaseName, azdata.TaskExecutionMode.execute);
break;
case mssql.SchemaCompareEndpointType.Project:
result = await vscode.commands.executeCommand(loc.sqlDatabaseProjectsPublishChanges, this.comparisonResult.operationId, this.targetEndpointInfo.projectFilePath, this.targetEndpointInfo.folderStructure);
result = await vscode.commands.executeCommand(loc.sqlDatabaseProjectsPublishChanges, this.comparisonResult.operationId, this.targetEndpointInfo.projectFilePath, this.targetEndpointInfo.extractTarget);
if (!result.success) {
void vscode.window.showErrorMessage(loc.applyError);
}
@@ -1151,8 +1151,8 @@ export class SchemaCompareMainWindow {
connectionDetails: undefined,
projectFilePath: endpoint.projectFilePath,
targetScripts: [],
dataSchemaProvider: '',
folderStructure: mssql.ExtractTarget.schemaObjectType // TODO: Pick this automatically from the scmp file, after issue #20332 is resolved (check dsp as well)
dataSchemaProvider: endpoint.dataSchemaProvider,
extractTarget: endpoint.extractTarget
};
} else {
// need to do this instead of just setting it to the endpoint because some fields are null which will cause an error when sending the compare request

View File

@@ -52,7 +52,7 @@ export const mockDacpacEndpoint: mssql.SchemaCompareEndpointInfo = {
packageFilePath: mockFilePath,
connectionDetails: undefined,
projectFilePath: '',
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
targetScripts: [],
dataSchemaProvider: '',
};
@@ -66,7 +66,7 @@ export const mockDatabaseEndpoint: mssql.SchemaCompareEndpointInfo = {
packageFilePath: '',
connectionDetails: undefined,
projectFilePath: '',
folderStructure: mssql.ExtractTarget.schemaObjectType,
extractTarget: mssql.ExtractTarget.schemaObjectType,
targetScripts: [],
dataSchemaProvider: '',
};