mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
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:
@@ -55,7 +55,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: '',
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -68,7 +68,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: '',
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -123,7 +123,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: sourceDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -136,7 +136,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: targetDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -196,7 +196,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -209,7 +209,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: targetDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -256,7 +256,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: '',
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -269,7 +269,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: '',
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -330,7 +330,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -343,7 +343,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: targetDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -413,7 +413,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -426,7 +426,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: targetDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -484,7 +484,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: '',
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
@@ -497,7 +497,7 @@ suite('Schema compare integration test suite @DacFx@', () => {
|
||||
databaseName: targetDB,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: undefined
|
||||
|
||||
2
extensions/mssql/src/mssql.d.ts
vendored
2
extensions/mssql/src/mssql.d.ts
vendored
@@ -135,7 +135,7 @@ declare module 'mssql' {
|
||||
connectionName?: string;
|
||||
projectFilePath: string;
|
||||
targetScripts: string[];
|
||||
folderStructure: ExtractTarget;
|
||||
extractTarget: ExtractTarget;
|
||||
dataSchemaProvider: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"preview": false,
|
||||
"engines": {
|
||||
"vscode": "^1.25.0",
|
||||
"azdata": ">=1.40.0"
|
||||
"azdata": ">=1.44.0"
|
||||
},
|
||||
"license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt",
|
||||
"icon": "images/extension.png",
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: '',
|
||||
};
|
||||
|
||||
@@ -1821,7 +1821,7 @@ export class ProjectsController {
|
||||
}
|
||||
|
||||
// Publish the changes (retrieved from the cache by operationId)
|
||||
const publishResult = await this.schemaComparePublishProjectChanges(operationId, target.projectFilePath, target.folderStructure);
|
||||
const publishResult = await this.schemaComparePublishProjectChanges(operationId, target.projectFilePath, target.extractTarget);
|
||||
|
||||
if (publishResult.success) {
|
||||
void vscode.window.showInformationMessage(constants.applySuccess);
|
||||
|
||||
@@ -445,7 +445,7 @@ export class UpdateProjectFromDatabaseDialog {
|
||||
private createFolderStructureRow(view: azdata.ModelView): azdata.FlexContainer {
|
||||
this.folderStructureDropDown = view.modelBuilder.dropDown().withProps({
|
||||
values: [constants.file, constants.flat, constants.objectType, constants.schema, constants.schemaObjectType],
|
||||
value: constants.schemaObjectType, //TODO: Read this value from project info after fixing https://github.com/microsoft/azuredatastudio/issues/20332
|
||||
value: constants.schemaObjectType,
|
||||
ariaLabel: constants.folderStructureLabel,
|
||||
required: true,
|
||||
width: cssStyles.updateProjectFromDatabaseTextboxWidth
|
||||
@@ -560,7 +560,7 @@ export class UpdateProjectFromDatabaseDialog {
|
||||
connectionDetails: connectionDetails,
|
||||
ownerUri: ownerUri,
|
||||
projectFilePath: '',
|
||||
folderStructure: mssql.ExtractTarget.schemaObjectType,
|
||||
extractTarget: mssql.ExtractTarget.schemaObjectType,
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
packageFilePath: '',
|
||||
@@ -570,7 +570,7 @@ export class UpdateProjectFromDatabaseDialog {
|
||||
const targetEndpointInfo: mssql.SchemaCompareEndpointInfo = {
|
||||
endpointType: mssql.SchemaCompareEndpointType.Project,
|
||||
projectFilePath: this.projectFileDropdown!.value! as string,
|
||||
folderStructure: mapExtractTargetEnum(<string>this.folderStructureDropDown!.value),
|
||||
extractTarget: mapExtractTargetEnum(<string>this.folderStructureDropDown!.value),
|
||||
targetScripts: [],
|
||||
dataSchemaProvider: '',
|
||||
connectionDetails: connectionDetails,
|
||||
|
||||
Reference in New Issue
Block a user