Schema Compare extension (#4974)

* extension now working

* fix diff editor title disappearing and remove border from source and target name boxes

* redoing a bunch of stuff that disappeared after rebasing

* add images and add to extensions.ts

* moving a few changes to the right place after rebase

* formatting

* update toolbar svgs

* addressing comments

* add return types

* Adding PR comments

* Adding light and dark theme icons

* Fixing the diff editor title for dark theme
This commit is contained in:
kisantia
2019-04-17 19:14:22 -07:00
committed by udeeshagautam
parent 910e4815fa
commit d3483afaed
37 changed files with 1359 additions and 6 deletions

View File

@@ -44,6 +44,8 @@ declare module 'azdata' {
export function registerDacFxServicesProvider(provider: DacFxServicesProvider): vscode.Disposable;
export function registerSchemaCompareServicesProvider(provider: SchemaCompareServicesProvider): vscode.Disposable;
/**
* An [event](#Event) which fires when the specific flavor of a language used in DMP
* connections has changed. And example is for a SQL connection, the flavor changes
@@ -1699,6 +1701,51 @@ declare module 'azdata' {
generateDeployPlan(packageFilePath: string, databaseName: string, ownerUri: string, taskExecutionMode: TaskExecutionMode): Thenable<GenerateDeployPlanResult>;
}
// Schema Compare interfaces -----------------------------------------------------------------------
export interface SchemaCompareResult extends ResultStatus {
operationId: string;
areEqual: boolean;
differences: DiffEntry[];
}
export interface DiffEntry {
updateAction: SchemaUpdateAction;
differenceType: SchemaDifferenceType;
name: string;
sourceValue: string;
targetValue: string;
parent: DiffEntry;
children: DiffEntry[];
sourceScript: string;
targetScript: string;
}
export enum SchemaUpdateAction {
Delete = 0,
Change = 1,
Add = 2
}
export enum SchemaDifferenceType {
Object = 0,
Property = 1
}
export enum SchemaCompareEndpointType {
database = 0,
dacpac = 1
}
export interface SchemaCompareEndpointInfo {
endpointType: SchemaCompareEndpointType;
packageFilePath: string;
databaseName: string;
ownerUri: string;
}
export interface SchemaCompareServicesProvider extends DataProvider {
schemaCompare(sourceEndpointInfo: SchemaCompareEndpointInfo, targetEndpointInfo: SchemaCompareEndpointInfo, taskExecutionMode: TaskExecutionMode): Thenable<SchemaCompareResult>;
schemaCompareGenerateScript(operationId: string, targetDatabaseName: string, scriptFilePath: string, taskExecutionMode: TaskExecutionMode): Thenable<ResultStatus>;
}
// Security service interfaces ------------------------------------------------------------------------
export interface CredentialInfo {
id: number;
@@ -2916,6 +2963,7 @@ declare module 'azdata' {
value: string;
width?: number;
cssClass?: string;
headerCssClass?: string;
toolTip?: string;
}
@@ -3764,6 +3812,7 @@ declare module 'azdata' {
AgentServicesProvider = 'AgentServicesProvider',
CapabilitiesProvider = 'CapabilitiesProvider',
DacFxServicesProvider = 'DacFxServicesProvider',
SchemaCompareServicesProvider = 'SchemaCompareServicesProvider',
ObjectExplorerNodeProvider = 'ObjectExplorerNodeProvider',
}