Save publish profile in Publish UI workflow (#22700)

* Add profile section in Publish project UI

* Move publish profile row below Publish Target

* Add contract for savePublishProfie and SaveProfileAs button functionality

* Make the DacFx contract functional

* Send values from UI to DacFx service call

* Fix build error

* Address comment, remove print statements

* Address comments

* Set correct connection string

* Fix functionality for rename, exclude, delete publish profiles. Add new profile to the tree and sqlproj.

* Address comment to update alignement of button

* Address comments

* Update button to use title casing
This commit is contained in:
Sakshi Sharma
2023-04-13 17:08:24 -07:00
committed by GitHub
parent 3deb163210
commit 91ea2b43d6
11 changed files with 148 additions and 37 deletions

View File

@@ -551,6 +551,14 @@ export interface ParseTSqlScriptParams {
databaseSchemaProvider: string;
}
export interface SavePublishProfileParams {
profilePath: string;
databaseName: string;
connectionString: string;
sqlCommandVariableValues?: Record<string, string>;
deploymentOptions?: mssql.DeploymentOptions;
}
export namespace ExportRequest {
export const type = new RequestType<ExportParams, mssql.DacFxResult, void, void>('dacfx/export');
}
@@ -587,6 +595,10 @@ export namespace ParseTSqlScriptRequest {
export const type = new RequestType<ParseTSqlScriptParams, mssql.ParseTSqlScriptResult, void, void>('dacfx/parseTSqlScript');
}
export namespace SavePublishProfileRequest {
export const type = new RequestType<SavePublishProfileParams, azdata.ResultStatus, void, void>('dacfx/savePublishProfile');
}
// ------------------------------- </ DacFx > ------------------------------------
// ------------------------------- < Sql Projects > ------------------------------------

View File

@@ -84,4 +84,9 @@ export class DacFxService extends BaseService implements mssql.IDacFxService {
const params: contracts.ParseTSqlScriptParams = { filePath, databaseSchemaProvider };
return this.runWithErrorHandling(contracts.ParseTSqlScriptRequest.type, params);
}
public async savePublishProfile(profilePath: string, databaseName: string, connectionString: string, sqlCommandVariableValues?: Record<string, string>, deploymentOptions?: mssql.DeploymentOptions): Promise<azdata.ResultStatus> {
const params: contracts.SavePublishProfileParams = { profilePath, databaseName, connectionString, sqlCommandVariableValues, deploymentOptions };
return this.runWithErrorHandling(contracts.SavePublishProfileRequest.type, params);
}
}

View File

@@ -242,6 +242,7 @@ declare module 'mssql' {
getOptionsFromProfile(profilePath: string): Thenable<DacFxOptionsResult>;
validateStreamingJob(packageFilePath: string, createStreamingJobTsql: string): Thenable<ValidateStreamingJobResult>;
parseTSqlScript(filePath: string, databaseSchemaProvider: string): Thenable<ParseTSqlScriptResult>;
savePublishProfile(profilePath: string, databaseName: string, connectionString: string, sqlCommandVariableValues?: Record<string, string>, deploymentOptions?: DeploymentOptions): Thenable<azdata.ResultStatus>;
}
export interface DacFxResult extends azdata.ResultStatus {