Generated banner for Synapse Migration
Generated logo for Synapse Migration

Synapse Migration

MicrosoftOfficialPublished by Microsoft

  • Skill
  • Workflow
  • Software development
  • MIT
  • Low risk
  • Has scripts

From the author

Converts Synapse workspaces to Fabric: Spark items, Lake Databases, Linked Services, and Dedicated SQL Pool schema/procedures for Lakehouse or Warehouse. During Pool-to-Lakehouse migration only, can migrate approved dependent procedure callers after notebook readiness. Excludes standalone pipelines and Warehouse administration. Triggers: Synapse workspace to Fabric, Dedicated SQL Pool to Lakehouse, Dedicated SQL Pool to Fabric Warehouse.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The synapse-migration skill provides a structured, phased workflow for transitioning Synapse Analytics workspaces to Microsoft Fabric. It covers the migration of Spark items, Lake Databases, Linked Services, and Dedicated SQL Pool schema and stored procedures. The skill emphasizes a dependency-ordered approach, requiring gap assessment and explicit approval before conversion. It distinguishes between migrating to a Fabric Lakehouse (schema and code only, no data movement) and a Fabric Warehouse, while providing specific routing for dependent pipeline callers.

What it does

  • Discovers and classifies Synapse workspace artifacts.
  • Converts Dedicated SQL Pool schema and stored procedures to Spark SQL notebooks or Warehouse objects.
  • Migrates Spark items, including notebooks and Spark Job Definitions, to Fabric equivalents.
  • Maps Linked Services to Fabric Data Connections or OneLake Shortcuts.
  • Manages the migration of approved dependent pipeline callers.
  • Validates persisted definitions and artifacts against established contracts.

When to use it

  • When migrating a full Synapse workspace to Microsoft Fabric.
  • When converting Dedicated SQL Pool schema and procedures to a Lakehouse or Warehouse.
  • When porting Spark pools, notebooks, or Spark Job Definitions to Fabric.
  • When replacing Synapse Linked Services with Fabric-native connectivity.

Advantages

  • Ensures dependency-ordered migration to maintain system integrity.
  • Provides clear routing for different workload types (Lakehouse vs. Warehouse).
  • Enforces strict validation and approval gates for behavior-changing decisions.
  • Supports incremental migration rather than high-risk big-bang cutovers.
  • Standardizes the conversion of T-SQL procedures to executable Spark SQL notebooks.

Usage examples

“Migrate this Dedicated SQL Pool DACPAC to a Fabric Lakehouse and convert the procedures.”
The agent will assess gaps, obtain approval for procedure-to-notebook mappings, create a migration manifest, convert schema/code artifacts, and validate the results.
“Migrate this Dedicated SQL Pool to Fabric Warehouse.”
The agent will assess DDL compatibility, remove unsupported distribution/index declarations, obtain provisioning consent, and prepare for potential data migration.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/microsoft/synapse-migration/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip synapse-migration.zip -d .agents/skills

Documentation by Microsoft

Telemetry — MANDATORY. Every api.fabric.microsoft.com call must carry x-ms-fabric-skill: synapse-migration (az rest: --headers "x-ms-fabric-skill=synapse-migration"), including every LRO poll, fabric_lro and retry. Snippets omit it — add it anyway.

OFFLINE LAKEHOUSE ARTIFACT FAST PATH — DECIDE FIRST. For a no-live-call request with complete supplied inputs and contracts, load only the fast path; do not load migration-planning-reference.md, dedicated-pool-conversion.md, or implementation scripts. Use one generator for artifacts and final-byte hashes, then one verifier. Do not inspect generated files or run post-pass spot checks. For every optional non-null source default, set missingValueBehavior to UseSourceDefault and restore that default before validation. Do not use this path for a Warehouse target; incomplete and large-procedure requests use their own routes.

CRITICAL NOTES

  1. To find workspace details (including its ID) from a workspace name: list all workspaces, then use JMESPath filtering.

  2. To find item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace, then use JMESPath filtering.

  3. Treat a source Dedicated SQL Pool as read-only. Do not run source DDL, DML, stored procedures, or create sample objects.

  4. Dedicated Pool-to-Lakehouse data movement is out of scope. Migrate schema and executable code artifacts only; do not copy source rows or run row-level/business-result equivalence queries. The separate Warehouse route may move data only from a separately approved restored export copy under its own consent gate and restored-source contract.

  5. For Dedicated Pool-to-Lakehouse requests, complete gap assessment, explicit mapping approval, manifest creation, conversion, deployment, and validation in order. Read dedicated-pool-to-lakehouse.md once as the router, then load only the current phase reference.

  6. Stored-procedure 1:1, N:1, and N:N mappings never apply to views. Views remain schema objects; procedures become traceable Spark SQL notebooks with executable %%sql transformation cells.

  7. Dependent ADF/Synapse callers are conditional scope, not automatic scope. Discover them during assessment, require a separate complete-closure approval, and migrate them only after notebook readiness. Route standalone pipeline requests to pipeline-migration.

  8. Before executing a specialized Dedicated Pool workflow, read the matching contract in dedicated-pool-execution-contracts.md. Its validation, hashing, request-body, resume, and completion-language requirements are mandatory.

  9. Keep Lakehouse and Warehouse paths separate. If the target is unclear, ask before loading path-specific resources. Lakehouse conversion never moves source rows; Warehouse data migration requires its own explicit consent gate and restored-source contract.

  10. For a Fabric Warehouse target, explicitly state that the complete DISTRIBUTION and CLUSTERED COLUMNSTORE INDEX declarations are removed because Fabric manages distribution, storage, and indexing; a bare mention of either source clause is insufficient.

  11. Run setup DDL and CETAS only against the separately approved restored export copy after proving it is not the original production source.

Synapse Analytics to Microsoft Fabric Migration

Core Workflow

  1. Discover the Synapse workspace and classify every source artifact.

  2. Choose targets using workload-routing.md.

  3. Assess gaps before conversion, including runtime, library, connectivity, T-SQL, security, and capacity constraints.

  4. Obtain approval for behavior-changing decisions, target placement, and every stored-procedure-to-notebook mapping.

  5. Create or update migration-manifest.json and persist approval, per-object status, hashes, and checkpoints atomically.

  6. Convert and deploy in dependency order, loading only the current phase resource.

  7. Validate persisted definitions and artifacts without executing generated notebooks or pipelines unless a separately approved workflow explicitly requires execution.

  8. Report completed, blocked, skipped, and pending objects without exposing credentials or sensitive values.

For full-workspace orchestration, read migration-orchestrator.md. For a Dedicated Pool-to-Lakehouse migration, use dedicated-pool-to-lakehouse.md as the phase router. For a Warehouse target, load only the matching dw-* resource.

Scope Routing

RequestActionLoad
Full Synapse workspace migrationRun phased discovery and migrationmigration-orchestrator.md
Dedicated SQL Pool schema/code to LakehouseRun the strict assessment-to-validation workflow. For guidance-only notebook publication, explicitly state: "The stored procedures were converted from T-SQL to Spark SQL before publication."dedicated-pool-to-lakehouse.md
Guidance-only Dedicated Pool incremental deployment hardeningAnswer directly from the focused checklist; do not search scripts or load phase resources. State: "For columns with special characters, enable Delta columnMapping selectively and only with approval."dedicated-pool-execution-contracts.md
Large or complex stored procedureFor a complete offline contract, read only the audit resource once, use one run-local generator and one verifier, do not inspect implementation scripts or generated outputs, and stop after successful verificationdedicated-pool-large-procedure-audit.md
Spark poolConvert configuration and libraries to a Fabric Environmentspark-pool-migration.md
Lake Database or HMSCreate or bind the target Lakehouselake-database-migration.md or external-hms-migration.md
Notebook or Spark Job DefinitionPort code, bindings, parameters, and runtime settingsspark-item-migration.md
Linked ServiceChoose a Fabric Data Connection for external services or a OneLake Shortcut for ADLS Gen2/Blobconnectivity-migration.md
Approved dependent procedure callersRun the internal closure-preserving sub-flow after notebook readbackdedicated-pool-dependent-pipelines.md
Standalone pipeline migrationDelegatepipeline-migration
Dedicated SQL Pool to Fabric WarehouseRun the source extraction, DDL compatibility, approval, optional data, security, and validation routedw-source-and-extraction.md, then the matching dw-* phase resource
Standalone Fabric Warehouse administrationDelegatesqldw-cli
Synapse LinkUse Fabric Mirroring; not covered here—

Always report the Lake Database/HMS phase. If none is discovered, mark it NotApplicable (none discovered) while retaining the required target Lakehouse binding.

Load References On Demand

Do not preload all files. Load only the references needed for the current phase:

NeedReference
Routing, phase order, API audiences, quick examples, troubleshooting, or post-migration handoffworkload-routing.md
Dedicated Pool execution variants and response contractsdedicated-pool-execution-contracts.md
Dedicated Pool discoverydedicated-pool-discovery.md
Gap assessment and mapping approvaldedicated-pool-gap-assessment.md
Procedure conversion and notebook shapededicated-pool-conversion.md
Schema/notebook deploymentdedicated-pool-deployment.md
Dedicated Pool validationdedicated-pool-validation.md
Runtime/library compatibilityfeature-parity.md and library-compatibility.md
mssparkutils and connector refactoringutility-api-mapping.md, connector-refactoring.md, and code-patterns.md
Capacity planningcapacity-sizing.md
Dedicated Pool-to-Warehouse source discovery and extractiondw-source-and-extraction.md
Warehouse DDL compatibility and deploymentdw-ddl-compatibility.md
Separately approved Warehouse data migrationdw-data-migration.md
Warehouse security and validationdw-security-validation.md
Validation, reporting, and production readinessvalidation-testing.md, migration-report.md, and security-governance.md

Use COMMON-CLI.md only for shared authentication and az rest mechanics not already covered by the phase resource. Use COMMON-CORE.md only for shared Fabric REST patterns.

Must

  • Preserve every stored-procedure input contract, source default, source decision, and approved target mapping.

  • Block conversion until gap dispositions, notebook names, dependency grouping, and target workspace placement are explicitly approved.

  • Use SqlPackage/DMVs for source discovery, Fabric REST for item management, and Fabric Livy statements for Lakehouse schema and Delta execution.

  • Run the maintained validators required by the selected execution contract; never replace them with ad hoc JSON or cell-shape checks.

  • Choose the Lakehouse or Warehouse target before loading implementation resources; never apply Warehouse data-movement rules to Lakehouse artifact conversion.

  • Before persisting any dependent-pipeline source definition, recursively inspect it for secret-bearing or uncertain properties; block the complete selected closure without writing the artifact or mutating a target when any are found.

  • In every dependent-pipeline response, including guidance-only and pre-approval explanations, state: "Use a TridentNotebook activity with exact target identities typeProperties.notebookId and typeProperties.workspaceId, and pass inputs through typeProperties.notebookParameters." Then state: "After deployment, read back each pipeline with POST /v1/workspaces/{workspaceId}/items/{dataPipelineId}/getDefinition and validate its canonical hash and structural bindings."

  • For every Linked Service response, first state both replacement classes: Fabric Data Connections for external databases/services and OneLake Shortcuts for ADLS Gen2/Blob storage; then identify which class applies.

  • Replace mssparkutils with notebookutils, Linked Services with the correct Fabric connection class, and spark.read.synapsesql() with a supported OneLake or JDBC pattern.

  • Externalize workspace and item IDs through parameters or Variable Libraries.

  • Keep phase status concise, emit bounded heartbeats for long operations, and persist per-object evidence in the manifest.

Prefer

  • OneLake Shortcuts over copying data.

  • Fabric Environments for reproducible libraries and Spark settings.

  • Incremental, dependency-ordered migration over big-bang cutover.

  • Parameterized notebooks and Variable Libraries for environment promotion.

  • Lakehouse SQL Endpoint for compatible Serverless SQL Pool read workloads.

Avoid

  • Do not execute generated notebooks or pipelines as part of artifact migration.

  • Do not broaden a selected dependent-pipeline closure or route that internal sub-flow to pipeline-migration.

  • Do not use sqlcmd against the target Fabric Warehouse; use the registered SQL endpoint tooling required by the Warehouse resource.

  • Do not preserve Synapse distribution/storage hints, PolyBase DDL, Linked Service connection strings, or pool-level library installation patterns verbatim.

  • Do not use target notebooks to orchestrate the migration itself.

  • Do not hardcode workspace IDs, item IDs, credentials, connection strings, or environment-specific paths.

Examples

Prompt: "Migrate this Dedicated SQL Pool DACPAC to a Fabric Lakehouse and convert the procedures."

Response behavior: Assess gaps first, present and obtain approval for the complete procedure-to-notebook mapping and workspace placement, create the manifest, convert approved schema/code artifacts without moving source rows, validate persisted definitions, and report the resolved Lakehouse and artifact evidence.

Prompt: "Migrate this ADF pipeline to Fabric."

Response behavior: Route to pipeline-migration. Keep it here only when the pipeline is an explicitly approved dependent caller discovered inside an active Dedicated Pool-to-Lakehouse migration.

Prompt: "Migrate this Dedicated SQL Pool to Fabric Warehouse."

Response behavior: Keep this inside synapse-migration, assess DDL compatibility, remove unsupported distribution and columnstore declarations, obtain provisioning consent, and ask separately before any restored-source data migration.

For code transformations and edge cases, load workload-routing.md and the phase-specific resource rather than expanding the main instructions.

Files

resources/dw-security-validation.md

Security Deployment, Reporting, and Validation

Load this resource for security generation/deployment, completion summaries, and Step 10.

Pre-deployment assessment contract

Before requesting target-action approval, explicitly cover every applicable item below in the assessment; do not rely on a general compatibility statement. Use one explicit checklist item for every bullet below and preserve these labels where applicable: computed-value data consent, identity reseed validation, and metadata-only completion after data decline. Do not request approval until every checklist item is present in the response. If an item does not apply, state why instead of silently omitting it.

  • External-object catalogs (sys.external_tables, sys.external_data_sources, sys.external_file_formats, and sys.database_scoped_credentials) and object/column dependencies (sys.sql_expression_dependencies, referenced_minor_id, and sys.columns); name referenced_minor_id explicitly so column-level dependency extraction is verifiable.

  • Supported UTF-8 target collation and byte-safe string sizing; post-create ALTER TABLE constraints in their supported form: ALTER TABLE ... ADD CONSTRAINT ... PRIMARY KEY NONCLUSTERED (<columns>) NOT ENFORCED. The column list precedes NOT ENFORCED; never emit PRIMARY KEY NONCLUSTERED NOT ENFORCED (<columns>).

  • Separate data-migration consent for exporting evaluated computed-column values; CETAS only on a restored source copy, never the original production source; and a path prefix normalized by removing leading and trailing / characters.

  • Identity preservation and reseed validation, including DBCC CHECKIDENT and a subsequent generated identity; approved least-privilege Entra workspace or item access plus principal-level connectivity and effective-access validation.

  • The target collision choice; catalog and data validation; and, when data migration is declined, the complete metadata-only path: skip CETAS, deploy approved security, validate metadata, print the completion summary, and end.

End the assessment by requesting explicit approval before any target action.

Fabric Warehouse execution via MCP

Keep source and target SQL execution paths separate:

  • Use sqlcmd for read-only metadata extraction and approved CETAS operations against the external Synapse dedicated SQL pool.

  • Use the SQL Endpoint MCP execute_query operation for every Fabric Warehouse SQL operation, including metadata deployment, COPY INTO, security deployment, catalog readback, and validation.

Before the first target SQL operation, confirm that a concrete tool name for the fabric-sqlendpoint server is available. Tool names can be prefixed by the client, such as fabric-sqlendpoint-execute_query or sqlendpoint-global-execute_query; invoke the name shown in the active tool list with:

execute_query(workspaceId, itemId, query)

Pass the Fabric workspace GUID as workspaceId, the Warehouse item GUID as itemId, and one T-SQL batch as query. Do not pass a file path, GO separators, or sqlcmd meta-commands. Read each generated SQL file and submit its contents one object at a time so failures remain attributable. Only the final result set is returned, so use a separate readback call when deployment needs verification.

When an approved operation restricts tools to the SQL Endpoint MCP, make every post-approval tool call through execute_query. Write a valid literal disposable name directly into the SQL (for example, use a literal eight-hex suffix); never compute or generate it. Do not call a shell, script, random-number utility, file tool, or other helper merely to obtain an identifier.

If no matching MCP tool is available, stop before target SQL execution and direct the user to register the Fabric SQL Endpoint server through the installed Fabric plugin or mcp-setup. Do not silently fall back to sqlcmd for the target Warehouse.

Security scripts

Generate only security objects in the resolved metadata scope:

FileContents
security/roles.sqlDatabase roles
security/role-members.sqlRole memberships
security/permissions.sqlDatabase, schema, object, and column GRANT/DENY/REVOKE statements
security/rls.sqlPredicate functions, security policies, and predicates
security/cls.sqlColumn-level grants/denies derived from sys.database_permissions.minor_id
security/ddm.sqlDynamic data masking definitions

For SQL-authenticated source users, migrate database role definitions only. Do not create the SQL users, migrate their role memberships, or apply grants issued directly to those users. Preserve grants assigned to roles and supported Microsoft Entra principals. List every omitted SQL principal, membership, and direct permission in migration-report.md so an administrator can map them later if needed.

For unsupported column-level encryption, continue migration without the encryption definition and emit a prominent non-blocking warning in terminal output and migration-report.md. Identify every affected table and column and state that Fabric stores the migrated value without the source column-encryption protection.

Deploy security after dependent schemas/functions/tables exist; security deployment does not depend on choosing data migration and must still run for metadata-only migrations.

After the Step 4 migration approval, generate a security diff that lists every role, membership, GRANT, DENY, REVOKE, RLS policy, CLS permission, and DDM definition. Require explicit security approval before applying it, with DENY, REVOKE, membership, policy, and mask changes called out separately; this approval is mandatory when reusing a Warehouse. If data migration is approved, defer approved security changes until Step 9, after data loading and identity remapping. If data migration is declined, apply them before the metadata-only completion summary. Continue independent security objects after an individual failure, but mark the migration Incomplete: security deployment failures and never declare success until all approved security changes deploy and validate.

For every migrated Microsoft Entra principal, record in the security diff the Fabric workspace role or item-level Read permission required in addition to database permissions. Prefer least-privilege item access when it is sufficient; require a workspace role only for workspace-wide capabilities. Present each proposed access assignment and obtain explicit approval before granting it. After deployment, connect through the Warehouse SQL connection string as that principal where possible, inspect database, schema, and object permissions with sys.fn_my_permissions, and test representative approved and denied access. Otherwise report the principal as an unresolved connectivity or effective-access gap and do not declare the security migration complete.

Resolve the target Warehouse

After assessment consent and before target SQL deployment:

  1. List all accessible Fabric workspaces and resolve exactly one workspace by display name. Verify its capacity is active and the executing principal has at least Contributor workspace access; stop otherwise.

  2. List all Warehouses with pagination through GET /v1/workspaces/{workspaceId}/warehouses. Compare exact display names and present every existing Warehouse. Never infer reuse from a partial or case-folded name.

  3. Ask whether to reuse an existing Warehouse or create a new, uniquely named Warehouse. For a new Warehouse, ask for one supported collation; do not silently accept the API's case-sensitive default.

  4. Create only after approval with POST /v1/workspaces/{workspaceId}/warehouses, setting creationPayload.collationType. Treat ItemDisplayNameAlreadyInUse as a collision decision, not a transient retry.

  5. For a 202 Accepted response, poll the returned Location using Retry-After until a documented terminal state or deadline. Then call GET /v1/workspaces/{workspaceId}/warehouses/{warehouseId} and verify the exact display name, workspace ID, selected collation, and properties.connectionString before SQL deployment.

  6. For either creation or reuse, connect with Microsoft Entra authentication and enumerate target schemas, tables, views, functions, procedures, roles, and permissions. Compare them to the converted source scope and write a Step 5 collision manifest containing every exact schema-qualified collision, target object type, dependency chain, and row-presence signal for tables.

Every Fabric REST request in this sequence, including pagination and LRO polling, must carry the mandatory x-ms-fabric-skill: synapse-migration header from SKILL.md.

Deployment and stop paths

Before target SQL deployment, use read-only permission checks to verify the executing Entra principal can create/alter every selected object type and apply the generated role, permission, RLS, CLS, and DDM statements. If required target permissions are missing, list the exact grants or workspace role remediation and stop deployment before the first object. Do not continue with a knowingly partial target permission set.

When reusing an existing Warehouse, consume the generated Step 5 collision manifest. Ask once per collision and default to skip existing. Require explicit approval before replacement; record skips, replacements, and incoming-object renames in migration-report.md. After an incoming object rename, do not rewrite SQL references; block every direct and transitive dependent. Recalculate dependency order after every decision.

For an approved replacement, prefer CREATE OR ALTER when the Fabric object type supports it. If replacement requires DROP and CREATE, show the destructive operations and request separate confirmation immediately before execution. Never drop/recreate a populated table through metadata collision handling; use the approved per-table data load policy and a user-reviewed table evolution plan instead.

Deploy converted metadata in dependency order:

  1. Schemas

  2. Tables

  3. Functions required by views or RLS

  4. Views

  5. Stored procedures

  6. Data load and identity remapping, when approved

  7. Security objects

Skip every object marked blocked and every transitive dependent. Continue independent objects and list each blocked dependency chain in the completion summary.

Retry policy

Retry transient Fabric REST and SQL deployment failures up to three times with exponential backoff and service-provided Retry-After guidance when available. Retry throttling (429), service-unavailable/gateway errors (502, 503, 504), timeouts, dropped connections, and temporary endpoint readiness failures. Before replaying a timed-out or disconnected write, poll its LRO when present and read back the exact item/catalog state to determine whether it committed. Retry only when the intended state is absent and the operation is idempotent; never blindly replay COPY INTO, truncate/reload, merge, or another data-changing batch.

Treat authentication and authorization errors as terminal except for one narrow SQL Endpoint MCP propagation case: when the exact target was already confirmed and preceding DDL calls succeeded, but a read-only catalog readback returns PowerBINotAuthorizedException, retry the identical read-only catalog query once. Never retry a mutation for this exception. A changed target/query, an earlier authorization failure, or a second failure is terminal and requires cleanup plus an incomplete result.

Outside that exact readback exception, do not retry syntax, compatibility, authentication, authorization, missing dependency, duplicate object, or invalid request errors. After three failed transient attempts, mark the operation failed, block its dependents, and continue independent work. Record attempt counts and the final error in migration-report.md.

After metadata deployment, ask whether to migrate table data. If declined, do not create CETAS resources. Apply the approved security changes, complete the mandatory metadata validation below, and only then print a metadata summary with source scope, target Warehouse, and source/deployed/failed counts for schemas, tables, views, procedures, functions, permissions, RLS, CLS, and DDM. Point to migration-report.md and end.

Data validation

Run only for exported tables and only against the same restored export copy recorded in the migration manifest; never run row-level validation against the original production source:

  • Compare source and target row counts.

  • Compare deterministic aggregates or checksums on stable key columns; do not rely on unordered samples.

  • Compare representative rows ordered by a stable key.

  • Validate remapped identity and foreign-key relationships.

  • Confirm parent tables loaded before children according to the approved dependency order and that no blocked circular-dependency table was loaded.

  • Record missing, extra, and mismatched rows in migration-report.md.

If row counts, deterministic aggregates, identity remaps, or relationship checks disagree, mark that table Validation failed. Mark the overall migration Incomplete: validation failures while preserving successful status for tables that passed. Do not decommission the source or declare completion until every failed table is remediated and revalidated.

Source disposition

Never pause, scale, rename, or delete the source dedicated SQL pool as a post-migration action. After all metadata and selected data validations pass, provide a user-owned decommission checklist covering application cutover, rollback retention, backups/exports, downstream dependency confirmation, monitoring, and a separately approved pause or deletion process.

Metadata validation

Always validate metadata, even when data migration is declined:

  • Compare resolved source scope with generated and deployed objects.

  • Confirm dependent schemas and functions exist.

  • Confirm permissions, RLS predicates, CLS grants, and DDM masks reference existing targets.

  • Re-run compilation or a no-op query for views, functions, and procedures where possible.

Compile or create every migrated view, function, and procedure and record dependency or syntax failures. Then ask the user to select critical code objects for representative restored-copy/target tests and provide safe parameters plus expected outcomes. Compare result schemas, row counts, and deterministic values where applicable. Never execute source code objects against the original production source.

Do not infer parameters or execute data-mutating procedures automatically. Require explicit user confirmation immediately before any representative test that can change data, and run it only in a user-approved test context or transaction strategy.

Output structure

migration-output/<SOURCE_DATABASE>/
├── migration-report.md
├── schemas/
├── tables/
├── views/
├── procedures/
├── functions/
├── cetas/
├── copy-into/
└── security/
    ├── roles.sql
    ├── role-members.sql
    ├── permissions.sql
    ├── rls.sql
    ├── cls.sql
    └── ddm.sql

References

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python

Security

What our scanner noticed· Low risk

  • Instructions that use the network
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/skills-for-fabric · skills/synapse-migration · commit f8fac11
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
microsoft/skills-for-fabric

AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download synapse-migration.zip