<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Migrate Azure Databricks between cross tenant in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/169482#M12141</link>
    <description>&lt;P&gt;Yes, DAB is a good approach if the new workspace is already built and you mainly need to migrate notebooks, jobs, pipelines, and other workspace resources. You can use databricks bundle generate to create configuration for existing resources, put it under version control, then deploy the bundle to the new workspace; just keep in mind that identities, secrets, Unity Catalog objects, and other external dependencies may need to be handled separately.&lt;/P&gt;</description>
    <pubDate>Tue, 22 Sep 2026 17:05:48 GMT</pubDate>
    <dc:creator>Martínezluas</dc:creator>
    <dc:date>2026-09-22T17:05:48Z</dc:date>
    <item>
      <title>Migrate Azure Databricks between cross tenant</title>
      <link>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/168864#M12117</link>
      <description>&lt;P&gt;How to migrate an Azure Databricks to a different Azure tenant?&lt;/P&gt;&lt;P&gt;Does DAB is the best method if a databricks workspace is freshly built on top of just migrating the the workspace resources only like notebook, jobs, cluster, policies, permissions etc?&amp;nbsp;&lt;BR /&gt;Please share detailed steps to achieve this.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Sep 2026 23:53:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/168864#M12117</guid>
      <dc:creator>smukherjee</dc:creator>
      <dc:date>2026-09-16T23:53:02Z</dc:date>
    </item>
    <item>
      <title>Re: Migrate Azure Databricks between cross tenant</title>
      <link>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/169173#M12131</link>
      <description>&lt;P&gt;A fresh workspace makes DAB a reasonable option, especially since you mainly need to migrate notebooks, jobs, policies, clusters, and permissions.&lt;/P&gt;</description>
      <pubDate>Sat, 19 Sep 2026 10:12:58 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/169173#M12131</guid>
      <dc:creator>stephen4</dc:creator>
      <dc:date>2026-09-19T10:12:58Z</dc:date>
    </item>
    <item>
      <title>Re: Migrate Azure Databricks between cross tenant</title>
      <link>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/169482#M12141</link>
      <description>&lt;P&gt;Yes, DAB is a good approach if the new workspace is already built and you mainly need to migrate notebooks, jobs, pipelines, and other workspace resources. You can use databricks bundle generate to create configuration for existing resources, put it under version control, then deploy the bundle to the new workspace; just keep in mind that identities, secrets, Unity Catalog objects, and other external dependencies may need to be handled separately.&lt;/P&gt;</description>
      <pubDate>Tue, 22 Sep 2026 17:05:48 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/169482#M12141</guid>
      <dc:creator>Martínezluas</dc:creator>
      <dc:date>2026-09-22T17:05:48Z</dc:date>
    </item>
    <item>
      <title>Re: Migrate Azure Databricks between cross tenant</title>
      <link>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/172437#M12434</link>
      <description>&lt;DIV&gt;
&lt;P&gt;&lt;STRONG&gt;Short answer:&lt;/STRONG&gt; Yes, bundles are a good fit for the workspace-resource layer (jobs, pipelines, clusters, policies, dashboards, warehouses, permissions). They won't move everything, though. In practice, a cross-tenant move is a rebuild of the workspace with bundles replaying your code and config on top, plus separate work for identity, data, and infrastructure.&lt;/P&gt;
&lt;H2&gt;What bundles cover and what they don't&lt;/H2&gt;
&lt;P&gt;Bundles are an IaC approach: YAML plus source files, deployed with the Databricks CLI [1]. Supported resource types include jobs, pipelines, clusters, cluster policies, instance pools, SQL warehouses, dashboards, alerts, experiments, secret scopes, model serving endpoints, and Unity Catalog objects such as catalogs, schemas, volumes and registered models [2]. Resources can also carry &lt;CODE&gt;permissions&lt;/CODE&gt; blocks [2].&lt;/P&gt;
&lt;P&gt;Bundles do &lt;STRONG&gt;not&lt;/STRONG&gt; handle these, so plan them separately:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure infrastructure:&lt;/STRONG&gt; the workspace itself, VNet injection/Private Link, storage accounts, access connectors, Key Vault. Use Terraform/Bicep/ARM in the new tenant.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Identity:&lt;/STRONG&gt; the new tenant has a different Entra ID, so users, groups and service principals have new identities. Provision them in the new account first (SCIM or Entra ID provisioning).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data:&lt;/STRONG&gt; Delta tables and files in ADLS don't move with a bundle. Copy them at the storage level, or use deep clone or Delta Sharing, depending on volume.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Secret values:&lt;/STRONG&gt; a bundle can define a scope but not carry the secret values over. Re-create them.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2&gt;Steps&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;1. Stand up the target.&lt;/STRONG&gt; Create the new workspace and Unity Catalog metastore/storage credentials/external locations in the new tenant with IaC. Re-create users, groups and service principals, and assign them to the workspace.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;2. Configure the CLI for both workspaces.&lt;/STRONG&gt; Use OAuth U2M profiles, one for source and one for target [1]:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-sh"&gt;databricks auth login --host https://adb-&amp;lt;old&amp;gt;.azuredatabricks.net --profile old
databricks auth login --host https://adb-&amp;lt;new&amp;gt;.azuredatabricks.net --profile new
databricks --version   # bundles need v0.218.0 or above
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;3. Generate bundle config from the source workspace.&lt;/STRONG&gt; You don't need to hand-write YAML for existing resources, because &lt;CODE&gt;databricks bundle generate&lt;/CODE&gt; produces it [2]:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-sh"&gt;databricks bundle init   # or start from an empty databricks.yml
databricks bundle generate job --existing-job-id &amp;lt;job-id&amp;gt; --profile old
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;It also pulls down the notebooks the job references. Repeat for pipelines, dashboards and so on. For anything that has no &lt;CODE&gt;generate&lt;/CODE&gt; support (for example, cluster policies), write the YAML yourself, using the resource reference as the schema [2].&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;4. Get notebooks into source control.&lt;/STRONG&gt; Ideally they already live in Git. If some only exist in the workspace, export them with &lt;CODE&gt;databricks workspace export-dir&lt;/CODE&gt; and commit them, so the repo becomes the source of truth.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;5. Add a target for the new tenant and remap identities.&lt;/STRONG&gt; Permissions in the YAML must reference principals that exist in the new tenant. User emails often change, so parameterize them:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-yaml"&gt;bundle:
  name: workspace-migration

variables:
  admin_group:
    default: data-platform-admins

targets:
  new_tenant:
    mode: production
    workspace:
      host: https://adb-&amp;lt;new&amp;gt;.azuredatabricks.net

resources:
  jobs:
    nightly_etl:
      name: nightly_etl
      permissions:
        - group_name: ${var.admin_group}
          level: CAN_MANAGE
      # tasks, clusters, schedule ...
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Also update anything hard-coded to the old environment, such as storage paths, catalog names, warehouse IDs, cluster policy IDs, and secret scope references.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;6. Validate and deploy.&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-sh"&gt;databricks bundle validate -t new_tenant --profile new
databricks bundle deploy   -t new_tenant --profile new
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;CODE&gt;validate&lt;/CODE&gt; warns about unknown resource properties [2], which catches typos early.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;7. Re-apply permissions that aren't tied to a bundle resource.&lt;/STRONG&gt; Workspace object ACLs are managed per object type (CAN MANAGE, CAN RUN, CAN ATTACH TO, and so on) [3]. For notebooks and folders that aren't bundle resources, apply permissions at the folder level so objects inherit them [3]. Unity Catalog grants also need re-applying in the new metastore, which is best scripted as SQL or Terraform.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;8. Migrate data, then test.&lt;/STRONG&gt; Copy the data, repoint tables, run jobs in the new workspace, and compare outputs against the source before cutting over schedules.&lt;/P&gt;
&lt;H2&gt;Recommendation&lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Use &lt;STRONG&gt;Terraform/Bicep&lt;/STRONG&gt; for the Azure infrastructure, workspace and account-level identity.&lt;/LI&gt;
&lt;LI&gt;Use &lt;STRONG&gt;bundles&lt;/STRONG&gt; for jobs, pipelines, compute definitions, dashboards, and their permissions.&lt;/LI&gt;
&lt;LI&gt;Use &lt;STRONG&gt;Git&lt;/STRONG&gt; for notebooks.&lt;/LI&gt;
&lt;LI&gt;Use a separate &lt;STRONG&gt;data copy&lt;/STRONG&gt; process for tables and files.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;That split gives you a repeatable, reviewable migration, and the same bundle then doubles as your CI/CD deployment going forward.&lt;/P&gt;
&lt;H2&gt;References&lt;/H2&gt;
&lt;P&gt;[1] What are Declarative Automation Bundles? | Databricks on AWS — &lt;A href="https://docs.databricks.com/aws/en/dev-tools/bundles" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/bundles&lt;/A&gt;&lt;BR /&gt;[2] Declarative Automation Bundles resources | Databricks on AWS — &lt;A href="https://docs.databricks.com/aws/en/dev-tools/bundles/resources" target="_blank"&gt;https://docs.databricks.com/aws/en/dev-tools/bundles/resources&lt;/A&gt;&lt;BR /&gt;[3] Access control lists | Databricks on AWS — &lt;A href="https://docs.databricks.com/aws/en/security/auth/access-control" target="_blank"&gt;https://docs.databricks.com/aws/en/security/auth/access-control&lt;/A&gt;&lt;/P&gt;
&lt;/DIV&gt;</description>
      <pubDate>Fri, 09 Oct 2026 11:55:26 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/migrate-azure-databricks-between-cross-tenant/m-p/172437#M12434</guid>
      <dc:creator>anuj_lathi</dc:creator>
      <dc:date>2026-10-09T11:55:26Z</dc:date>
    </item>
  </channel>
</rss>

