mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 10:58:30 -05:00
Add Schema Compare support for AAD (#853)
* pass AzureAcountToken if there is one * Addressing comments * formatting * more formatting and moving getting connectionstring from constructor to CreateSchemaCompareEndpoint()
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4505.1-preview" />
|
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4519.1-preview" />
|
||||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.6.0-preview3-26501-04" />
|
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.6.0-preview3-26501-04" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
|
|
||||||
public SchemaCompareParams Parameters { get; set; }
|
public SchemaCompareParams Parameters { get; set; }
|
||||||
|
|
||||||
public string SourceConnectionString { get; set; }
|
public ConnectionInfo SourceConnectionInfo { get; set; }
|
||||||
|
|
||||||
public string TargetConnectionString { get; set; }
|
public ConnectionInfo TargetConnectionInfo { get; set; }
|
||||||
|
|
||||||
public SchemaComparisonResult ComparisonResult { get; set; }
|
public SchemaComparisonResult ComparisonResult { get; set; }
|
||||||
|
|
||||||
@@ -43,8 +43,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
{
|
{
|
||||||
Validate.IsNotNull("parameters", parameters);
|
Validate.IsNotNull("parameters", parameters);
|
||||||
this.Parameters = parameters;
|
this.Parameters = parameters;
|
||||||
this.SourceConnectionString = SchemaCompareUtils.GetConnectionString(sourceConnInfo, parameters.SourceEndpointInfo.DatabaseName);
|
this.SourceConnectionInfo = sourceConnInfo;
|
||||||
this.TargetConnectionString = SchemaCompareUtils.GetConnectionString(targetConnInfo, parameters.TargetEndpointInfo.DatabaseName);
|
this.TargetConnectionInfo = targetConnInfo;
|
||||||
this.OperationId = !string.IsNullOrEmpty(parameters.OperationId) ? parameters.OperationId : Guid.NewGuid().ToString();
|
this.OperationId = !string.IsNullOrEmpty(parameters.OperationId) ? parameters.OperationId : Guid.NewGuid().ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,8 +82,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SchemaCompareEndpoint sourceEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.SourceEndpointInfo, this.SourceConnectionString);
|
SchemaCompareEndpoint sourceEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.SourceEndpointInfo, this.SourceConnectionInfo);
|
||||||
SchemaCompareEndpoint targetEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.TargetEndpointInfo, this.TargetConnectionString);
|
SchemaCompareEndpoint targetEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.TargetEndpointInfo, this.TargetConnectionInfo);
|
||||||
|
|
||||||
SchemaComparison comparison = new SchemaComparison(sourceEndpoint, targetEndpoint);
|
SchemaComparison comparison = new SchemaComparison(sourceEndpoint, targetEndpoint);
|
||||||
|
|
||||||
|
|||||||
@@ -32,17 +32,17 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
|
|
||||||
public SchemaCompareSaveScmpParams Parameters { get; set; }
|
public SchemaCompareSaveScmpParams Parameters { get; set; }
|
||||||
|
|
||||||
public string SourceConnectionString { get; set; }
|
public ConnectionInfo SourceConnectionInfo { get; set; }
|
||||||
|
|
||||||
public string TargetConnectionString { get; set; }
|
public ConnectionInfo TargetConnectionInfo { get; set; }
|
||||||
|
|
||||||
public SchemaCompareSaveScmpOperation(SchemaCompareSaveScmpParams parameters, ConnectionInfo sourceConnInfo, ConnectionInfo targetConnInfo)
|
public SchemaCompareSaveScmpOperation(SchemaCompareSaveScmpParams parameters, ConnectionInfo sourceConnInfo, ConnectionInfo targetConnInfo)
|
||||||
{
|
{
|
||||||
Validate.IsNotNull("parameters", parameters);
|
Validate.IsNotNull("parameters", parameters);
|
||||||
Validate.IsNotNull("parameters.ScmpFilePath", parameters.ScmpFilePath);
|
Validate.IsNotNull("parameters.ScmpFilePath", parameters.ScmpFilePath);
|
||||||
this.Parameters = parameters;
|
this.Parameters = parameters;
|
||||||
this.SourceConnectionString = SchemaCompareUtils.GetConnectionString(sourceConnInfo, parameters.SourceEndpointInfo.DatabaseName);
|
this.SourceConnectionInfo = sourceConnInfo;
|
||||||
this.TargetConnectionString = SchemaCompareUtils.GetConnectionString(targetConnInfo, parameters.TargetEndpointInfo.DatabaseName);
|
this.TargetConnectionInfo = targetConnInfo;
|
||||||
this.OperationId = Guid.NewGuid().ToString();
|
this.OperationId = Guid.NewGuid().ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,8 +55,8 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SchemaCompareEndpoint sourceEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.SourceEndpointInfo, this.SourceConnectionString);
|
SchemaCompareEndpoint sourceEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.SourceEndpointInfo, this.SourceConnectionInfo);
|
||||||
SchemaCompareEndpoint targetEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.TargetEndpointInfo, this.TargetConnectionString);
|
SchemaCompareEndpoint targetEndpoint = SchemaCompareUtils.CreateSchemaCompareEndpoint(this.Parameters.TargetEndpointInfo, this.TargetConnectionInfo);
|
||||||
|
|
||||||
SchemaComparison comparison = new SchemaComparison(sourceEndpoint, targetEndpoint);
|
SchemaComparison comparison = new SchemaComparison(sourceEndpoint, targetEndpoint);
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ using Microsoft.SqlServer.Dac.Compare;
|
|||||||
using Microsoft.SqlServer.Dac.Model;
|
using Microsoft.SqlServer.Dac.Model;
|
||||||
using Microsoft.SqlTools.ServiceLayer.Connection;
|
using Microsoft.SqlTools.ServiceLayer.Connection;
|
||||||
using Microsoft.SqlTools.ServiceLayer.SchemaCompare.Contracts;
|
using Microsoft.SqlTools.ServiceLayer.SchemaCompare.Contracts;
|
||||||
|
using Microsoft.SqlTools.ServiceLayer.Utility;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -107,7 +108,7 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static SchemaCompareEndpoint CreateSchemaCompareEndpoint(SchemaCompareEndpointInfo endpointInfo, string connectionString)
|
internal static SchemaCompareEndpoint CreateSchemaCompareEndpoint(SchemaCompareEndpointInfo endpointInfo, ConnectionInfo connInfo)
|
||||||
{
|
{
|
||||||
switch (endpointInfo.EndpointType)
|
switch (endpointInfo.EndpointType)
|
||||||
{
|
{
|
||||||
@@ -117,7 +118,10 @@ namespace Microsoft.SqlTools.ServiceLayer.SchemaCompare
|
|||||||
}
|
}
|
||||||
case SchemaCompareEndpointType.Database:
|
case SchemaCompareEndpointType.Database:
|
||||||
{
|
{
|
||||||
return new SchemaCompareDatabaseEndpoint(connectionString);
|
string connectionString = GetConnectionString(connInfo, endpointInfo.DatabaseName);
|
||||||
|
return connInfo.ConnectionDetails?.AzureAccountToken != null
|
||||||
|
? new SchemaCompareDatabaseEndpoint(connectionString, new AccessTokenProvider(connInfo.ConnectionDetails.AzureAccountToken))
|
||||||
|
: new SchemaCompareDatabaseEndpoint(connectionString);
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
||||||
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4505.1-preview" />
|
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4519.1-preview" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
|
||||||
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
<PackageReference Include="System.Data.SqlClient" Version="4.6.0" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
<PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="$(SmoPackageVersion)" />
|
||||||
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4505.1-preview" />
|
<PackageReference Include="Microsoft.SqlServer.DacFx" Version="150.4519.1-preview" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
|
||||||
|
|||||||
Reference in New Issue
Block a user