mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-08 17:25:08 -05:00
Add DacFx Generate Deploy Script operation (#759)
* Adding DacFx Generate Deploy Script operation
This commit is contained in:
@@ -43,6 +43,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
serviceHost.SetRequestHandler(ImportRequest.Type, this.HandleImportRequest);
|
||||
serviceHost.SetRequestHandler(ExtractRequest.Type, this.HandleExtractRequest);
|
||||
serviceHost.SetRequestHandler(DeployRequest.Type, this.HandleDeployRequest);
|
||||
serviceHost.SetRequestHandler(GenerateDeployScriptRequest.Type, this.HandleGenerateDeployScriptRequest);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -64,8 +65,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
out connInfo);
|
||||
if (connInfo != null)
|
||||
{
|
||||
SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Export");
|
||||
ExportOperation operation = new ExportOperation(parameters, sqlConn);
|
||||
ExportOperation operation = new ExportOperation(parameters, connInfo);
|
||||
await ExecuteOperation(operation, parameters, "Export bacpac", requestContext);
|
||||
}
|
||||
}
|
||||
@@ -89,8 +89,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
out connInfo);
|
||||
if (connInfo != null)
|
||||
{
|
||||
SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Import");
|
||||
ImportOperation operation = new ImportOperation(parameters, sqlConn);
|
||||
ImportOperation operation = new ImportOperation(parameters, connInfo);
|
||||
await ExecuteOperation(operation, parameters, "Import bacpac", requestContext);
|
||||
}
|
||||
}
|
||||
@@ -114,8 +113,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
out connInfo);
|
||||
if (connInfo != null)
|
||||
{
|
||||
SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Extract");
|
||||
ExtractOperation operation = new ExtractOperation(parameters, sqlConn);
|
||||
ExtractOperation operation = new ExtractOperation(parameters, connInfo);
|
||||
await ExecuteOperation(operation, parameters, "Extract dacpac", requestContext);
|
||||
}
|
||||
}
|
||||
@@ -139,8 +137,7 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
out connInfo);
|
||||
if (connInfo != null)
|
||||
{
|
||||
SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Deploy");
|
||||
DeployOperation operation = new DeployOperation(parameters, sqlConn);
|
||||
DeployOperation operation = new DeployOperation(parameters, connInfo);
|
||||
await ExecuteOperation(operation, parameters, "Deploy dacpac", requestContext);
|
||||
}
|
||||
}
|
||||
@@ -150,6 +147,44 @@ namespace Microsoft.SqlTools.ServiceLayer.DacFx
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handles request to generate deploy script
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task HandleGenerateDeployScriptRequest(GenerateDeployScriptParams parameters, RequestContext<DacFxResult> requestContext)
|
||||
{
|
||||
try
|
||||
{
|
||||
ConnectionInfo connInfo;
|
||||
ConnectionServiceInstance.TryFindConnection(
|
||||
parameters.OwnerUri,
|
||||
out connInfo);
|
||||
if (connInfo != null)
|
||||
{
|
||||
GenerateDeployScriptOperation operation = new GenerateDeployScriptOperation(parameters, connInfo);
|
||||
SqlTask sqlTask = null;
|
||||
TaskMetadata metadata = TaskMetadata.Create(parameters, "Generate script", operation, ConnectionServiceInstance);
|
||||
|
||||
// want to show filepath in task history instead of server and database
|
||||
metadata.ServerName = parameters.ScriptFilePath;
|
||||
metadata.DatabaseName = "";
|
||||
|
||||
sqlTask = SqlTaskManagerInstance.CreateAndRun<SqlTask>(metadata);
|
||||
|
||||
await requestContext.SendResult(new DacFxResult()
|
||||
{
|
||||
OperationId = operation.OperationId,
|
||||
Success = true,
|
||||
ErrorMessage = ""
|
||||
});
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
await requestContext.SendError(e);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task ExecuteOperation(DacFxOperation operation, DacFxParams parameters, string taskName, RequestContext<DacFxResult> requestContext)
|
||||
{
|
||||
SqlTask sqlTask = null;
|
||||
|
||||
Reference in New Issue
Block a user