diff --git a/build/lib/extensions.js b/build/lib/extensions.js index 22423ab4b7..fb143c6a84 100644 --- a/build/lib/extensions.js +++ b/build/lib/extensions.js @@ -222,7 +222,8 @@ const externalExtensions = [ 'sql-database-projects', 'machine-learning', 'sql-assessment', - 'asde-deployment' + 'asde-deployment', + 'sql-migration' ]; // extensions that require a rebuild since they have native parts const rebuildExtensions = [ diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index e338b0b10e..bcda51df74 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -256,7 +256,8 @@ const externalExtensions = [ 'sql-database-projects', 'machine-learning', 'sql-assessment', - 'asde-deployment' + 'asde-deployment', + 'sql-migration' ]; // extensions that require a rebuild since they have native parts diff --git a/extensions/sql-migration/images/extension.png b/extensions/sql-migration/images/extension.png new file mode 100644 index 0000000000..c86d6d1e00 Binary files /dev/null and b/extensions/sql-migration/images/extension.png differ diff --git a/extensions/sql-migration/package.json b/extensions/sql-migration/package.json new file mode 100644 index 0000000000..4cd1ba8577 --- /dev/null +++ b/extensions/sql-migration/package.json @@ -0,0 +1,41 @@ +{ + "name": "sql-migration", + "displayName": "%displayName%", + "description": "%description%", + "version": "0.0.1", + "publisher": "Microsoft", + "preview": true, + "license": "https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/LICENSE.txt", + "icon": "images/extension.png", + "engines": { + "vscode": "^1.25.0", + "azdata": ">=1.19.0" + }, + "activationEvents": [ + "onCommand:sqlmigration.start" + ], + "main": "./out/main", + "repository": { + "type": "git", + "url": "https://github.com/Microsoft/azuredatastudio.git" + }, + "extensionDependencies": [ + "Microsoft.mssql" + ], + "contributes": { + "commands": [ + { + "command": "sqlmigration.start", + "title": "SQL Migration Start", + "category": "SQL Migration" + } + ] + }, + "dependencies": { + "vscode-nls": "^3.2.1" + }, + "__metadata": { + "publisherDisplayName": "Microsoft", + "publisherId": "Microsoft" + } +} diff --git a/extensions/sql-migration/package.nls.json b/extensions/sql-migration/package.nls.json new file mode 100644 index 0000000000..a535e99221 --- /dev/null +++ b/extensions/sql-migration/package.nls.json @@ -0,0 +1,4 @@ +{ + "displayName": "SQL Migration", + "description": "SQL migration description" +} diff --git a/extensions/sql-migration/src/main.ts b/extensions/sql-migration/src/main.ts new file mode 100644 index 0000000000..29afc2a317 --- /dev/null +++ b/extensions/sql-migration/src/main.ts @@ -0,0 +1,39 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { ExtensionContext, Disposable, commands, window } from 'vscode'; + +class SQLMigration { + + constructor(private readonly context: ExtensionContext) { + } + + async start(): Promise { + + } + + async registerCommands(): Promise { + const commandDisposables: Disposable[] = [ // Array of disposables returned by registerCommand + commands.registerCommand('sqlmigration.start', () => { + window.showInformationMessage('Command ran'); + }), + ]; + + this.context.subscriptions.push(...commandDisposables); + } + + stop(): void { + + } +} + +let sqlMigration: SQLMigration; +export async function activate(context: ExtensionContext) { + sqlMigration = new SQLMigration(context); +} + +export function deactivate(): void { + sqlMigration.stop(); +} diff --git a/extensions/sql-migration/src/models/stateMachine.ts b/extensions/sql-migration/src/models/stateMachine.ts new file mode 100644 index 0000000000..8f710be096 --- /dev/null +++ b/extensions/sql-migration/src/models/stateMachine.ts @@ -0,0 +1,22 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export enum State { + COLLECTING_SOURCE_INFO, + COLLECTION_SOURCE_INFO_ERROR, + TARGET_SELECTION, + TARGET_SELECTION_ERROR, + AZURE_SERVER_SELECTION, + AZURE_SERVER_SELECTION_ERROR, + AZURE_DB_BACKUP, + AZURE_DB_BACKUP_ERROR, + MIGRATION_AGENT_CREATION, + MIGRATION_AGENT_SELECTION, + MIGRATION_AGENT_ERROR, + MIGRATION_START, + NO_AZURE_SERVER, + EXIT, +} + diff --git a/extensions/sql-migration/src/typings/ref.d.ts b/extensions/sql-migration/src/typings/ref.d.ts new file mode 100644 index 0000000000..cfdf5dd135 --- /dev/null +++ b/extensions/sql-migration/src/typings/ref.d.ts @@ -0,0 +1,9 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +/// +/// +/// +/// diff --git a/extensions/sql-migration/src/wizard/wizardController.ts b/extensions/sql-migration/src/wizard/wizardController.ts new file mode 100644 index 0000000000..f4af019e72 --- /dev/null +++ b/extensions/sql-migration/src/wizard/wizardController.ts @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the Source EULA. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export class WizardController { + constructor() { + + } + + public async openWizard(): Promise { + + } +} diff --git a/extensions/sql-migration/tsconfig.json b/extensions/sql-migration/tsconfig.json new file mode 100644 index 0000000000..8a5f06d89b --- /dev/null +++ b/extensions/sql-migration/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../shared.tsconfig.json", + "compileOnSave": true, + "compilerOptions": { + "module": "commonjs", + "outDir": "./out", + "lib": [ + "es6", "es2015.promise" + ], + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "declaration": false, + "strict": true, + "noUnusedParameters": false, + }, + "exclude": [ + "node_modules" + ] +} diff --git a/extensions/sql-migration/yarn.lock b/extensions/sql-migration/yarn.lock new file mode 100644 index 0000000000..45f8b9278d --- /dev/null +++ b/extensions/sql-migration/yarn.lock @@ -0,0 +1,8 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +vscode-nls@^3.2.1: + version "3.2.5" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.5.tgz#25520c1955108036dec607c85e00a522f247f1a4" + integrity sha512-ITtoh3V4AkWXMmp3TB97vsMaHRgHhsSFPsUdzlueSL+dRZbSNTZeOmdQv60kjCV306ghPxhDeoNUEm3+EZMuyw==