-
Notifications
You must be signed in to change notification settings - Fork 542
Data-Tier Application Feature #20332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds comprehensive support for Data-Tier Application operations (import/export/deploy/extract dacpac and bacpac files), replicating functionality previously available in Azure Data Studio. The feature enables users to launch these operations from the Object Explorer or command palette through a webview interface that guides them through selecting the operation type, server connection, database, and file paths.
Key Changes:
- New webview-based UI for managing dacpac/bacpac operations
- Command registration for all four operation types (deploy, extract, import, export)
- Validation logic for file paths, database names, and connections
- Support for both new and existing database deployments with confirmation dialogs
Reviewed Changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
File | Description |
---|---|
src/controllers/dataTierApplicationWebviewController.ts |
New controller managing webview RPC handlers for all data-tier operations |
src/reactviews/pages/DataTierApplication/dataTierApplicationForm.tsx |
React form component implementing the UI for operation configuration |
src/sharedInterfaces/dataTierApplication.ts |
TypeScript interfaces and RPC request/notification types |
src/services/dacFxService.ts |
Updated to accept optional application name/version parameters |
test/unit/dataTierApplicationWebviewController.test.ts |
Comprehensive unit tests covering all operation workflows |
src/controllers/mainController.ts |
Command registration for data-tier application operations |
package.json , package.nls.json |
Command definitions and localization keys |
Localization files | Translated strings for the new feature |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
deployToExistingMessage: l10n.t( | ||
"You are about to deploy to an existing database. This operation will make permanent changes to the database schema and may result in data loss. Do you want to continue?", | ||
), | ||
deployToExistingConfirm: l10n.t("Deploy"), |
Copilot
AI
Oct 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The localization key 'databaseAlreadyExists' is defined in both the dataTierApplication getter (line 1117) and appears to be duplicated in package.nls.json. While the values match, consider documenting whether this duplication is intentional for different contexts or if they should reference a shared constant.
deployToExistingConfirm: l10n.t("Deploy"), | |
deployToExistingConfirm: l10n.t("Deploy"), | |
// Note: The localization key 'databaseAlreadyExists' is also defined in package.nls.json. | |
// This duplication is currently intentional to support both VS Code extension and in-app localization. |
Copilot uses AI. Check for mistakes.
src/reactviews/pages/DataTierApplication/dataTierApplicationForm.tsx
Outdated
Show resolved
Hide resolved
const connectionWithoutId: (typeof mockConnections)[0] = { | ||
...mockConnections[0], | ||
id: undefined, | ||
}; |
Copilot
AI
Oct 21, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The type annotation '(typeof mockConnections)[0]' is verbose and could be simplified by extracting a type alias for the connection object structure, improving readability and maintainability across multiple test cases that use similar patterns.
Copilot uses AI. Check for mistakes.
…rm.tsx Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Description
Adding support to import/export/deploy/extract dacpac and bacpac files as it was possible in ADS.
Code Changes Checklist
npm run test
)Reviewers: Please read our reviewer guidelines