---
id: video/Gwgpj1U1wxI
type: video
title: Introduction to Business Central Cloud Migration (2023)
summary: "Business Central cloud migration from on-premises SQL to SaaS, using Azure Data Factory SQL to SQL copy: setup, table mappings for custom fields, replication, upgrade, go-live, and troubleshooting. Includes upgrade path limits (version 14 minimum, direct path from 14 ending April 2025 with version 26) and a full demo."
tier: official
language: en
tags:
  - cloud migration
  - azure data factory
  - sql to sql copy
  - integration runtime
  - data replication
  - data upgrade
  - on-premises to saas
  - upgrade paths
  - environment administration
  - go live
  - table mappings
  - custom fields
system: integration
review:
  state: reviewed
  by: opus
  at: "2026-10-07T23:15:51.320Z"
  flags: []
generated:
  at: "2026-10-07T23:15:51.380Z"
  pipeline: 0.2.0
  prompts:
    extract-video: 1
    summarize-video: 2
  input_hash: a123ed4e23284251794821646d3d768ddca8f0450394d03562dc91da99c8fe0f
evidence:
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=952s
    title: "Jump versions and five-version upgrade cycles: announced"
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 952
    quote: we are planning to introduce these jump versions or to delete the objects every five versions so the next jump version would be 30
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=104s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 104
    quote: it is the fastest and safest way to migrate the on Prem data into sauce the reason why it is the fastest way is
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=145s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 145
    quote: it has been used by the thousands of Partners unfortunately I cannot tell you how many migrations exactly we had but it is counted
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=186s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 186
    quote: looked into which data should be replicated and which should be left on prem for all of the microsoft on tables so
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=614s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 614
    quote: we will move the tenant into the maintenance mode and the only session that is going to be running on the tenant is is
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=733s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 733
    quote: 14 is the lowest version that we support for direct on prem upgrade or for the direct cloud migration
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=829s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 829
    quote: we are stopping the direct upgrade and Cloud migration path from Dynamics business Central 14 in approximately year and a half from now so
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=850s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 850
    quote: in April 2025 together with version 26 it will not be possible to Cloud migrate or directly upgrade from version 4 14
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=870s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 870
    quote: we need to remove obsolet fields and tables we have not been cleaning up objects in a very long time actually from version 12
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=952s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 952
    quote: we are planning to introduce these jump versions or to delete the objects every five versions so the next jump version would be 30
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1001s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1001
    quote: you only need to take care of two things the first thing that you must do is that you need to align the primary
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1022s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1022
    quote: if there is a difference in the name and type we are going to throw an error it's possible to move the data with
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1190s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1190
    quote: run invoke NV sanitized field commandlet to eliminate non-printing characters from code Fields
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1357s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1357
    quote: the main technology we rely on is the Azure data Factory which is an Azure cloudbased data integration uh service
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1621s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1621
    quote: since the stored procedures will actually apply some changes to the on Prem database uh we highly recommend to try the cloud migration for
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1659s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1659
    quote: based on some very recent improvements that we have applied throughout the last year we can safly claim that the migrations from aure SQL
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1718s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1718
    quote: when we're working with Cloud migration is that if there's any available updates for the environment in the admin Center we strongly recommend to
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1738s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1738
    quote: we would forcefully stop Cloud migration and then you would be forced to start over again deleting the environment
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1769s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 1769
    quote: the aim of table mapping is to move custom fields to table extensions in SAS and this is specifically because on Prem you're allowed
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2105s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2105
    quote: you able to provide these table mappings programmatically if you subscribe to the on insert default table mappings event from code unit 401 hybrid
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2226s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2226
    quote: it will always be a licensed super user that is able to perform the cloud migration setup and all the actions that follow but
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2387s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2387
    quote: for the large tables for such tables that we identify as large meaning that the size exceeds 250 mbytes or there's more than 100,000
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2448s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2448
    quote: we rely on SQL change tracking mechanism to keep track of the changes and then perform additional replication runs only on the Deltas
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2469s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2469
    quote: the removal of of the need for the Azure blob storage uh staging step for Azure SQL
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2798s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2798
    quote: when you have an environment in SAS we enforce a strong limit of 300 companies
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2889s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2889
    quote: upgr step needs to be invoked as an absolutely last step in the cloud migration
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2951s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 2951
    quote: do not change the data in SAS database because you're risking that your changes are going to be overwritten
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3083s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 3083
    quote: in the last two versions we have optimized over 30 long running upgrade methods
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3123s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 3123
    quote: we have introduced the functionality so you can run it after the cloud migration
  - kind: video
    url: https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3200s
    title: Introduction to Business Central Cloud Migration (2023)
    date: "2023-11-10T16:03:03.000Z"
    commit: null
    t: 3200
    quote: we are going to go through all of the tables which are using username and it is important for business Logic for example my
links:
  learn: []
  objects:
    - object/page/40063
    - object/table/9999
    - object/table/405
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
video_id: Gwgpj1U1wxI
channel: yt-microsoft
source_name: Microsoft Dynamics 365 Business Central (YouTube)
url: https://www.youtube.com/watch?v=Gwgpj1U1wxI
published_at: "2023-11-10T16:03:03.000Z"
duration_s: 3558
captions: full
audience:
  - functional consultant
  - administrator
  - partner
  - developer
chapters:
  - t: 0
    title: Introduction and Overview
  - t: 83
    title: Why Use Cloud Migration Tooling
  - t: 206
    title: Community and Documentation
  - t: 271
    title: End-to-End Cloud Migration Demo - Setup and Company Creation
  - t: 525
    title: Data Replication and Data Upgrade
  - t: 675
    title: Completing Cloud Migration
  - t: 717
    title: Cloud Migration Paths and Upgrade Strategy
  - t: 972
    title: "Preparation Step: Aligning SQL Definitions"
  - t: 1190
    title: Data Cleanup and Compression
  - t: 1316
    title: Cloud Migration Infrastructure and Setup Phase
  - t: 1603
    title: Setup Considerations and Environment Recommendations
  - t: 1749
    title: "Table Mappings: Migrating Custom Fields to Extensions"
  - t: 2040
    title: Table Mappings UI, Export, Import, and Delegated Admin
  - t: 2266
    title: Data Replication Mechanism and Azure SQL Improvements
  - t: 2520
    title: Replication Status UI and Migration Completion Options
  - t: 2798
    title: Cloud Migration Limitations and Upgrade Process
  - t: 2951
    title: Upgrade Process and Performance Optimizations
  - t: 3144
    title: Post-Upgrade Configuration and Multiple Company Migration
  - t: 3303
    title: Troubleshooting and Telemetry Monitoring
  - t: 3479
    title: Power BI Reporting and Testing Recommendations
features:
  - name: Cloud Migration Tooling
    status: unclear
    t: 104
    verified: false
    status_source: video
  - name: Azure Data Factory Pipeline
    status: unclear
    t: 331
    verified: false
    status_source: video
  - name: Integration Runtime
    status: unclear
    t: 351
    verified: false
    status_source: video
  - name: Self-hosted integration runtime
    status: unclear
    t: 1389
    verified: false
    status_source: video
  - name: Automatic Company Creation
    status: unclear
    t: 485
    verified: false
    status_source: video
  - name: Data Replication
    status: unclear
    t: 525
    verified: false
    status_source: video
  - name: Data Upgrade
    status: unclear
    t: 594
    verified: false
    status_source: video
  - name: Cloud Migration Management Page
    status: unclear
    t: 291
    verified: false
    status_source: video
  - name: Direct upgrade path discontinuation from version 14
    status: unclear
    t: 829
    verified: false
    status_source: video
  - name: Jump versions and five-version upgrade cycles
    status: announced
    t: 911
    verified: true
    status_source: video
  - name: SQL table definition alignment
    status: unclear
    t: 983
    verified: false
    status_source: video
  - name: Table extension support for customizations
    status: unclear
    t: 1063
    verified: false
    status_source: video
  - name: Three-character prefix/suffix field naming
    status: unclear
    t: 1104
    verified: false
    status_source: video
  - name: Invoke NV sanitized field commandlet
    status: unclear
    t: 1190
    verified: false
    status_source: video
  - name: Data Administration page
    status: unclear
    t: 1262
    verified: false
    status_source: video
  - name: Cloud migration setup phase with preparation pipeline
    status: unclear
    t: 1482
    verified: false
    status_source: video
  - name: Replication pipeline preparation
    status: unclear
    t: 1583
    verified: false
    status_source: video
  - name: Backup recommendation for on-premises migration
    status: unclear
    t: 1621
    verified: false
    status_source: video
  - name: Azure SQL database migration preference
    status: unclear
    t: 1659
    verified: false
    status_source: video
  - name: Postpone environment updates during cloud migration
    status: unclear
    t: 1718
    verified: false
    status_source: video
  - name: Application Insights telemetry for cloud migration
    status: unclear
    t: 1749
    verified: false
    status_source: video
  - name: Table mappings for custom fields migration
    status: unclear
    t: 1769
    verified: false
    status_source: video
  - name: Managed custom tables page for table mappings
    status: unclear
    t: 1908
    verified: false
    status_source: video
  - name: Table mappings export and import
    status: unclear
    t: 2093
    verified: false
    status_source: video
  - name: Programmatic table mappings via codeunit 401
    status: unclear
    t: 2105
    verified: false
    status_source: video
  - name: Keep user permissions during cloud migration setup
    status: unclear
    t: 2187
    verified: false
    status_source: video
  - name: Delegated admin consent for cloud migration
    status: unclear
    t: 2226
    verified: false
    status_source: video
  - name: Azure Data Factory pipelines for replication
    status: unclear
    t: 2307
    verified: false
    status_source: video
  - name: Large table vs bulk copy replication strategy
    status: unclear
    t: 2387
    verified: false
    status_source: video
  - name: Incremental replication with SQL change tracking
    status: unclear
    t: 2428
    verified: false
    status_source: video
  - name: Azure blob storage removal for Azure SQL
    status: unclear
    t: 2469
    verified: false
    status_source: video
  - name: Cloud migration UI with status dashboard
    status: unclear
    t: 2520
    verified: false
    status_source: video
  - name: Replication action log with run history
    status: unclear
    t: 2540
    verified: false
    status_source: video
  - name: Company replication filtering and selection
    status: unclear
    t: 2637
    verified: false
    status_source: video
  - name: Per-database table data review
    status: unclear
    t: 2657
    verified: false
    status_source: video
  - name: Replication data filtering by table name
    status: unclear
    t: 2718
    verified: false
    status_source: video
  - name: Table inclusion-exclusion for replication
    status: unclear
    t: 2738
    verified: false
    status_source: video
  - name: Cloud migration completion and pause-abandon options
    status: unclear
    t: 2757
    verified: false
    status_source: video
  - name: 300 company limit in SaaS
    status: unclear
    t: 2798
    verified: false
    status_source: video
  - name: Data storage capacity constraints
    status: unclear
    t: 2818
    verified: false
    status_source: video
  - name: Upgrade as final step in migration
    status: unclear
    t: 2889
    verified: false
    status_source: video
  - name: Per-database table upgrade constraints
    status: unclear
    t: 2910
    verified: false
    status_source: video
  - name: Single-location data modification rule
    status: unclear
    t: 2951
    verified: false
    status_source: video
  - name: Upgrade process with versioning ignored
    status: unclear
    t: 2991
    verified: false
    status_source: video
  - name: AppSource and custom app upgrade handling
    status: unclear
    t: 3032
    verified: false
    status_source: video
  - name: Sandbox testing before upgrade
    status: unclear
    t: 3052
    verified: false
    status_source: video
  - name: Upgrade performance optimizations
    status: unclear
    t: 3083
    verified: false
    status_source: video
  - name: API upgrade background jobs
    status: unclear
    t: 3123
    verified: false
    status_source: video
  - name: User mapping functionality
    status: unclear
    t: 3200
    verified: false
    status_source: video
  - name: One-time user mapping execution
    status: unclear
    t: 3220
    verified: false
    status_source: video
  - name: Dataverse integration configuration
    status: unclear
    t: 3246
    verified: false
    status_source: video
  - name: Multiple company migration in live tenants
    status: unclear
    t: 3263
    verified: false
    status_source: video
  - name: Cloud migration troubleshooting documentation
    status: unclear
    t: 3323
    verified: false
    status_source: video
  - name: Cloud migration telemetry events
    status: unclear
    t: 3363
    verified: false
    status_source: video
  - name: Power BI cloud migration app
    status: unclear
    t: 3405
    verified: false
    status_source: video
  - name: Telemetry-based alerts and notifications
    status: unclear
    t: 3459
    verified: false
    status_source: video
objects_mentioned:
  - page Cloud Migration Management
  - page Data Administration page
  - codeunit 401 hybrid cloud management
  - page add table mappings
  - page managed custom tables
  - page delegated admin consent for cloud migration
  - table tenant media table
  - table upgrade tags
  - table change log
  - table change log entry
  - page cloud migration page
  - page defined user mappings page
  - page users list
quotes:
  - t: 104
    text: it is the fastest and safest way to migrate the on Prem data into sauce the reason why it is the fastest way is
    check: exact
  - t: 145
    text: it has been used by the thousands of Partners unfortunately I cannot tell you how many migrations exactly we had but it is counted
    check: exact
  - t: 186
    text: looked into which data should be replicated and which should be left on prem for all of the microsoft on tables so
    check: fuzzy
  - t: 614
    text: we will move the tenant into the maintenance mode and the only session that is going to be running on the tenant is is
    check: exact
  - t: 733
    text: 14 is the lowest version that we support for direct on prem upgrade or for the direct cloud migration
    check: fuzzy
  - t: 829
    text: we are stopping the direct upgrade and Cloud migration path from Dynamics business Central 14 in approximately year and a half from now so
    check: snapped
  - t: 850
    text: in April 2025 together with version 26 it will not be possible to Cloud migrate or directly upgrade from version 4 14
    check: exact
  - t: 870
    text: we need to remove obsolet fields and tables we have not been cleaning up objects in a very long time actually from version 12
    check: exact
  - t: 952
    text: we are planning to introduce these jump versions or to delete the objects every five versions so the next jump version would be 30
    check: exact
  - t: 1001
    text: you only need to take care of two things the first thing that you must do is that you need to align the primary
    check: exact
  - t: 1022
    text: if there is a difference in the name and type we are going to throw an error it's possible to move the data with
    check: exact
  - t: 1190
    text: run invoke NV sanitized field commandlet to eliminate non-printing characters from code Fields
    check: exact
  - t: 1357
    text: the main technology we rely on is the Azure data Factory which is an Azure cloudbased data integration uh service
    check: exact
  - t: 1621
    text: since the stored procedures will actually apply some changes to the on Prem database uh we highly recommend to try the cloud migration for
    check: exact
  - t: 1659
    text: based on some very recent improvements that we have applied throughout the last year we can safly claim that the migrations from aure SQL
    check: exact
  - t: 1718
    text: when we're working with Cloud migration is that if there's any available updates for the environment in the admin Center we strongly recommend to
    check: exact
  - t: 1738
    text: we would forcefully stop Cloud migration and then you would be forced to start over again deleting the environment
    check: exact
  - t: 1769
    text: the aim of table mapping is to move custom fields to table extensions in SAS and this is specifically because on Prem you're allowed
    check: exact
  - t: 2105
    text: you able to provide these table mappings programmatically if you subscribe to the on insert default table mappings event from code unit 401 hybrid
    check: exact
  - t: 2226
    text: it will always be a licensed super user that is able to perform the cloud migration setup and all the actions that follow but
    check: exact
  - t: 2387
    text: for the large tables for such tables that we identify as large meaning that the size exceeds 250 mbytes or there's more than 100,000
    check: exact
  - t: 2448
    text: we rely on SQL change tracking mechanism to keep track of the changes and then perform additional replication runs only on the Deltas
    check: exact
  - t: 2469
    text: the removal of of the need for the Azure blob storage uh staging step for Azure SQL
    check: exact
  - t: 2798
    text: when you have an environment in SAS we enforce a strong limit of 300 companies
    check: exact
  - t: 2889
    text: upgr step needs to be invoked as an absolutely last step in the cloud migration
    check: exact
  - t: 2951
    text: do not change the data in SAS database because you're risking that your changes are going to be overwritten
    check: exact
  - t: 3083
    text: in the last two versions we have optimized over 30 long running upgrade methods
    check: exact
  - t: 3123
    text: we have introduced the functionality so you can run it after the cloud migration
    check: exact
  - t: 3200
    text: we are going to go through all of the tables which are using username and it is important for business Logic for example my
    check: exact
  - t: 3235
    text: you can do it only once per environment so you should do it as the last step because you will not be able to
    check: exact
  - t: 3263
    text: are can we move additional companies in live tenants and the answer is we do not officially support it and we strongly advise against
    check: exact
  - t: 3283
    text: you're doing it on your own risk it is the same as running rapid start or using any kind of ptes to to fix
    check: exact
  - t: 3343
    text: we do collect some of the most common issues that can occur either during the setup or the replication phase
    check: snapped
  - t: 3479
    text: there is no need to wait you can just take a database and test the cloud migration to a Sandbox
    check: exact
---

# Introduction to Business Central Cloud Migration (2023)

> Business Central cloud migration from on-premises SQL to SaaS, using Azure Data Factory SQL to SQL copy: setup, table mappings for custom fields, replication, upgrade, go-live, and troubleshooting. Includes upgrade path limits (version 14 minimum, direct path from 14 ending April 2025 with version 26) and a full demo.

[Watch on YouTube](https://www.youtube.com/watch?v=Gwgpj1U1wxI) · Microsoft Dynamics 365 Business Central (YouTube) · 2023-11-10 · 59:18 · tier official · reviewed (checked by Opus)

## Overview

The session from November 2023 walks through the Business Central cloud migration tooling end to end. It covers the setup wizard, the self-hosted integration runtime, automatic company creation, data replication, data upgrade and completing the migration to go live.

It also covers preparation (aligning SQL definitions, data cleanup), table mappings that move custom fields into table extensions, delegated admin consent, how replication works, limits such as 300 companies per SaaS environment, post-upgrade steps like user mapping, and troubleshooting with telemetry and a Power BI app.

## Key points

- Cloud migration uses Azure Data Factory SQL to SQL copy. On-premises sources need a self-hosted integration runtime installed in the private network. Migrating from Azure SQL is faster and more stable, and skips the blob storage staging step.
- Version 14 is the lowest supported version for direct migration or upgrade. The direct path from version 14 stops in April 2025 with version 26. A jump version is planned every five versions, and the next one would be 30.
- Setup applies changes to the on-premises database through stored procedures. Try the first migration on a backup of production, and a sandbox test is also recommended.
- Table and field definitions must match exactly in name and type, and primary keys must be aligned. Table mappings move custom fields into table extensions. They can be exported and imported as JSON, or generated by subscribing to an event in codeunit 401.
- Run the data upgrade as the very last step. No more replication or company additions are possible afterward. Do not change data in the SaaS database during replication.
- Postpone environment updates in the admin center during migration, because running them forcefully stops the migration.
- SaaS has a hard limit of 300 companies, and 250 is recommended. User mapping can run only once per environment, as the last step. Moving more companies into a live tenant is not officially supported.

## Chapters

- [0:00](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=0s) Introduction and Overview
- [1:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=83s) Why Use Cloud Migration Tooling
- [3:26](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=206s) Community and Documentation
- [4:31](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=271s) End-to-End Cloud Migration Demo - Setup and Company Creation
- [8:45](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=525s) Data Replication and Data Upgrade
- [11:15](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=675s) Completing Cloud Migration
- [11:57](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=717s) Cloud Migration Paths and Upgrade Strategy
- [16:12](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=972s) Preparation Step: Aligning SQL Definitions
- [19:50](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1190s) Data Cleanup and Compression
- [21:56](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1316s) Cloud Migration Infrastructure and Setup Phase
- [26:43](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1603s) Setup Considerations and Environment Recommendations
- [29:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1749s) Table Mappings: Migrating Custom Fields to Extensions
- [34:00](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2040s) Table Mappings UI, Export, Import, and Delegated Admin
- [37:46](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2266s) Data Replication Mechanism and Azure SQL Improvements
- [42:00](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2520s) Replication Status UI and Migration Completion Options
- [46:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2798s) Cloud Migration Limitations and Upgrade Process
- [49:11](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2951s) Upgrade Process and Performance Optimizations
- [52:24](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3144s) Post-Upgrade Configuration and Multiple Company Migration
- [55:03](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3303s) Troubleshooting and Telemetry Monitoring
- [57:59](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3479s) Power BI Reporting and Testing Recommendations

## Features

| Feature | Status | At | Evidence |
|---|---|---|---|
| Cloud Migration Tooling | status not stated, demoed | [1:44](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=104s) |  |
| Azure Data Factory Pipeline | status not stated, demoed | [5:31](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=331s) |  |
| Integration Runtime | status not stated, demoed | [5:51](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=351s) |  |
| Self-hosted integration runtime | status not stated | [23:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1389s) |  |
| Automatic Company Creation | status not stated, demoed | [8:05](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=485s) |  |
| Data Replication | status not stated, demoed | [8:45](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=525s) |  |
| Data Upgrade | status not stated, demoed | [9:54](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=594s) |  |
| Cloud Migration Management Page | status not stated, demoed | [4:51](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=291s) |  |
| Direct upgrade path discontinuation from version 14 | status not stated | [13:49](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=829s) |  |
| Jump versions and five-version upgrade cycles | announced | [15:11](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=911s) | "we are planning to introduce these jump versions or to delete the objects every five versions so the next jump version would be 30" ([15:52](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=952s)) |
| SQL table definition alignment | status not stated | [16:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=983s) |  |
| Table extension support for customizations | status not stated | [17:43](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1063s) |  |
| Three-character prefix/suffix field naming | status not stated | [18:24](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1104s) |  |
| Invoke NV sanitized field commandlet | status not stated | [19:50](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1190s) |  |
| Data Administration page | status not stated | [21:02](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1262s) |  |
| Cloud migration setup phase with preparation pipeline | status not stated | [24:42](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1482s) |  |
| Replication pipeline preparation | status not stated | [26:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1583s) |  |
| Backup recommendation for on-premises migration | status not stated | [27:01](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1621s) |  |
| Azure SQL database migration preference | status not stated | [27:39](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1659s) |  |
| Postpone environment updates during cloud migration | status not stated | [28:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1718s) |  |
| Application Insights telemetry for cloud migration | status not stated | [29:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1749s) |  |
| Table mappings for custom fields migration | status not stated, demoed | [29:29](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1769s) |  |
| Managed custom tables page for table mappings | status not stated, demoed | [31:48](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1908s) |  |
| Table mappings export and import | status not stated, demoed | [34:53](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2093s) |  |
| Programmatic table mappings via codeunit 401 | status not stated | [35:05](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2105s) |  |
| Keep user permissions during cloud migration setup | status not stated | [36:27](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2187s) |  |
| Delegated admin consent for cloud migration | status not stated, demoed | [37:06](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2226s) |  |
| Azure Data Factory pipelines for replication | status not stated | [38:27](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2307s) |  |
| Large table vs bulk copy replication strategy | status not stated | [39:47](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2387s) |  |
| Incremental replication with SQL change tracking | status not stated | [40:28](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2428s) |  |
| Azure blob storage removal for Azure SQL | status not stated | [41:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2469s) |  |
| Cloud migration UI with status dashboard | status not stated, demoed | [42:00](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2520s) |  |
| Replication action log with run history | status not stated, demoed | [42:20](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2540s) |  |
| Company replication filtering and selection | status not stated, demoed | [43:57](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2637s) |  |
| Per-database table data review | status not stated, demoed | [44:17](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2657s) |  |
| Replication data filtering by table name | status not stated, demoed | [45:18](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2718s) |  |
| Table inclusion-exclusion for replication | status not stated | [45:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2738s) |  |
| Cloud migration completion and pause-abandon options | status not stated, demoed | [45:57](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2757s) |  |
| 300 company limit in SaaS | status not stated | [46:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2798s) |  |
| Data storage capacity constraints | status not stated | [46:58](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2818s) |  |
| Upgrade as final step in migration | status not stated | [48:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2889s) |  |
| Per-database table upgrade constraints | status not stated | [48:30](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2910s) |  |
| Single-location data modification rule | status not stated | [49:11](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2951s) |  |
| Upgrade process with versioning ignored | status not stated | [49:51](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2991s) |  |
| AppSource and custom app upgrade handling | status not stated | [50:32](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3032s) |  |
| Sandbox testing before upgrade | status not stated | [50:52](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3052s) |  |
| Upgrade performance optimizations | status not stated | [51:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3083s) |  |
| API upgrade background jobs | status not stated | [52:03](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3123s) |  |
| User mapping functionality | status not stated, demoed | [53:20](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3200s) |  |
| One-time user mapping execution | status not stated | [53:40](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3220s) |  |
| Dataverse integration configuration | status not stated | [54:06](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3246s) |  |
| Multiple company migration in live tenants | status not stated | [54:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3263s) |  |
| Cloud migration troubleshooting documentation | status not stated, demoed | [55:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3323s) |  |
| Cloud migration telemetry events | status not stated, demoed | [56:03](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3363s) |  |
| Power BI cloud migration app | status not stated, demoed | [56:45](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3405s) |  |
| Telemetry-based alerts and notifications | status not stated | [57:39](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3459s) |  |

## AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

- [page 40063 "Cloud Migration Management"](../objects/page/40063.md) at [4:51](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=291s)
- page "Data Administration page" at [21:02](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1262s)
- codeunit "401 hybrid cloud management" at [35:05](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2105s)
- page "add table mappings" at [32:08](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1928s)
- page "managed custom tables" at [31:48](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1908s)
- page "delegated admin consent for cloud migration" at [37:46](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2266s)
- table "tenant media table" at [44:37](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2677s)
- [table 9999 "Upgrade Tags"](../objects/table/9999.md) at [44:57](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2697s)
- table "change log" at [45:18](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2718s)
- [table 405 "Change Log Entry"](../objects/table/405.md) at [45:18](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2718s)
- page "cloud migration page" at [53:20](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3200s)
- page "defined user mappings page" at [53:20](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3200s)
- page "users list" at [53:00](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3180s)

Not found in BC28-30: page "Data Administration page", codeunit "401 hybrid cloud management", page "add table mappings", page "managed custom tables", page "delegated admin consent for cloud migration", table "tenant media table", table "change log", page "cloud migration page", page "defined user mappings page", page "users list".

## Quotes

- [1:44](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=104s) "it is the fastest and safest way to migrate the on Prem data into sauce the reason why it is the fastest way is"
- [2:25](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=145s) "it has been used by the thousands of Partners unfortunately I cannot tell you how many migrations exactly we had but it is counted"
- [3:06](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=186s) "looked into which data should be replicated and which should be left on prem for all of the microsoft on tables so"
- [10:14](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=614s) "we will move the tenant into the maintenance mode and the only session that is going to be running on the tenant is is"
- [12:13](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=733s) "14 is the lowest version that we support for direct on prem upgrade or for the direct cloud migration"
- [13:49](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=829s) "we are stopping the direct upgrade and Cloud migration path from Dynamics business Central 14 in approximately year and a half from now so"
- [14:10](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=850s) "in April 2025 together with version 26 it will not be possible to Cloud migrate or directly upgrade from version 4 14"
- [14:30](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=870s) "we need to remove obsolet fields and tables we have not been cleaning up objects in a very long time actually from version 12"
- [15:52](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=952s) "we are planning to introduce these jump versions or to delete the objects every five versions so the next jump version would be 30"
- [16:41](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1001s) "you only need to take care of two things the first thing that you must do is that you need to align the primary"
- [17:02](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1022s) "if there is a difference in the name and type we are going to throw an error it's possible to move the data with"
- [19:50](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1190s) "run invoke NV sanitized field commandlet to eliminate non-printing characters from code Fields"
- [22:37](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1357s) "the main technology we rely on is the Azure data Factory which is an Azure cloudbased data integration uh service"
- [27:01](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1621s) "since the stored procedures will actually apply some changes to the on Prem database uh we highly recommend to try the cloud migration for"
- [27:39](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1659s) "based on some very recent improvements that we have applied throughout the last year we can safly claim that the migrations from aure SQL"
- [28:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1718s) "when we're working with Cloud migration is that if there's any available updates for the environment in the admin Center we strongly recommend to"
- [28:58](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1738s) "we would forcefully stop Cloud migration and then you would be forced to start over again deleting the environment"
- [29:29](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1769s) "the aim of table mapping is to move custom fields to table extensions in SAS and this is specifically because on Prem you're allowed"
- [35:05](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2105s) "you able to provide these table mappings programmatically if you subscribe to the on insert default table mappings event from code unit 401 hybrid"
- [37:06](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2226s) "it will always be a licensed super user that is able to perform the cloud migration setup and all the actions that follow but"
- [39:47](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2387s) "for the large tables for such tables that we identify as large meaning that the size exceeds 250 mbytes or there's more than 100,000"
- [40:48](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2448s) "we rely on SQL change tracking mechanism to keep track of the changes and then perform additional replication runs only on the Deltas"
- [41:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2469s) "the removal of of the need for the Azure blob storage uh staging step for Azure SQL"
- [46:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2798s) "when you have an environment in SAS we enforce a strong limit of 300 companies"
- [48:09](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2889s) "upgr step needs to be invoked as an absolutely last step in the cloud migration"
- [49:11](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2951s) "do not change the data in SAS database because you're risking that your changes are going to be overwritten"
- [51:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3083s) "in the last two versions we have optimized over 30 long running upgrade methods"
- [52:03](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3123s) "we have introduced the functionality so you can run it after the cloud migration"
- [53:20](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3200s) "we are going to go through all of the tables which are using username and it is important for business Logic for example my"
- [53:55](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3235s) "you can do it only once per environment so you should do it as the last step because you will not be able to"
- [54:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3263s) "are can we move additional companies in live tenants and the answer is we do not officially support it and we strongly advise against"
- [54:43](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3283s) "you're doing it on your own risk it is the same as running rapid start or using any kind of ptes to to fix"
- [55:43](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3343s) "we do collect some of the most common issues that can occur either during the setup or the replication phase"
- [57:59](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3479s) "there is no need to wait you can just take a database and test the cloud migration to a Sandbox"

## Disclaimers in the video

- [13:49](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=829s) coming-later: we are stopping the direct upgrade and Cloud migration path from Dynamics business Central 14 in approximately year and a half from now so in April 2025 together with version 26
- [27:01](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=1621s) other: we highly recommend to try the cloud migration for the first time on a backup of the production database
- [36:06](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2166s) not-in-this-release: Details about selective table inclusion will be elaborated more into more specific details in what's new in Cloud migration session
- [45:38](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=2738s) coming-later: we will cover about in what's new then the next thing that you can do is that you can complete the cloud migration
- [52:24](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3144s) coming-later: we are going to be talking about it more in the what's new session
- [52:24](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3144s) other: we are recommending to skip this step and we are going to be talking about it more in the what's new session
- [54:23](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3263s) not-in-this-release: we do not officially support it and we strongly advise against it
- [54:43](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3283s) other: you're doing it on your own risk
- [55:03](https://www.youtube.com/watch?v=Gwgpj1U1wxI&t=3303s) other: we will write the dedicated documentation topic that it will explain to you how you can do this safely

Presenters (as heard): Nicola, Ricardo, Nicolas.
