Skip to content

Rename registered models in place and follow parent renames - #7379

Draft
denik wants to merge 4 commits into
denik/schemas-removefrom
denik/models-rename
Draft

denik wants to merge 4 commits into
denik/schemas-removefrom
denik/models-rename

Conversation

@denik

@denik denik commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Changes

Changing a registered model's name now renames it in place (PATCH new_name) instead of deleting and recreating it, so the model keeps its versions. The recreate only matched Terraform, which is gone.

A model in a renamed catalog or schema (schema_name: ${resources.schemas.<s>.name}) now follows its parent the way volumes do in #7343: it is re-keyed without a request. It used to be planned as a recreate whose create failed with RESOURCE_ALREADY_EXISTS (verified on AWS), and every later deploy tried to create it again.

UC rejects an update that sets both name and new_name, so a rename leaves name out. The test server now enforces the same and moves models, with their versions, when the model, its schema or its catalog is renamed.

Stacked on #7343. UC secrets get the same fix in a follow-up.

Tests

  • New registered_models/rename (Cloud = true; passes locally and on AWS, GCP and Azure): rename the model, then its schema, then its catalog. created_at stays the same and the final plan is a no-op.
  • registered_models/basic (Cloud = true, AWS) and migrate/auto/registered-model-rename: a name change now renames.

This pull request and its description were written by Isaac.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Commit: d39796596 | Workflow run

Regression test report

Selected 20 changed tests (limit=20, 12 not selected)

34 tests: regression=29 unreleased=0 coverage=5 failing=0
test branch main (eb1328d) latest (v1.24.0)
TestAccept/bundle/lifecycle/prevent-destroy/DMS= ✅ ✅ ✅
TestAccept/bundle/lifecycle/prevent-destroy/DMS=true ✅ ✅ ✅
TestAccept/bundle/migrate/auto/registered-model-catalog-change/DMS= ✅ ✅ ✅
TestAccept/bundle/migrate/auto/registered-model-rename/DMS= ✅ ❌ ❌
TestAccept/bundle/migrate/auto/schema-catalog-change/DMS= ✅ ✅ ✅
TestAccept/bundle/migrate/auto/schema-rename/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename_all_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename_all_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/catalogs/rename_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/basic/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/basic/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/rename/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/rename/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/recreate_interrupted/DMS= ✅ ✅ ✅
TestAccept/bundle/resources/schemas/recreate_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/recreate_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_interrupted/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_then_change/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_then_change/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_with_volume/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_with_volume/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_with_volume_ref/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/schemas/rename_with_volume_ref/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/volumes/recreate_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/volumes/recreate_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/volumes/rename_out_of_band/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/volumes/rename_out_of_band/DMS=true ✅ ❌ ❌
TestAccept/bundle/migrate/auto/registered-model-rename/DMS=: branch ✅ | main (eb1328d) ❌ | latest (v1.24.0) ❌

main (eb1328d):

acceptance_test.go:1345: Diff:
        --- bundle/migrate/auto/registered-model-rename/output.txt
        +++ /tmp/TestAcceptbundlemigrateautoregistered-model-renameDMS=2890981259/002/output.txt
        @@ -4,15 +4,16 @@
         
         === Rename the model (an updatable id field) and deploy on direct
         >>> DATABRICKS_BUNDLE_ENGINE=direct [CLI] bundle deploy
        -Warn: migration to direct: registered_models.my_model: name differs between config ("themodel-[UNIQUE_NAME]-renamed") and terraform state ("themodel-[UNIQUE_NAME]"); this resource will be renamed.
        +Warn: migration to direct: registered_models.my_model: name differs between config ("themodel-[UNIQUE_NAME]-renamed") and terraform state ("themodel-[UNIQUE_NAME]"); this resource will be recreated.
         Notice: migrating your bundle to direct deployment engine (https://github.com/databricks/cli/issues/6765).
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/files...
         Migrated 2 resources to direct deployment engine.
        -Updated registered_models.my_model
        +Recreated registered_models.my_model
         Files: 2 uploaded, 0 deleted
        -Resources: 0 created, 1 changed, 0 deleted, 1 unchanged
        +Resources: 1 created, 0 changed, 1 deleted, 1 unchanged
         
         >>> print_migration_telemetry
        +direct_migrate_recreate_planned true
         direct_migrated_via_env true
         
         === Redeploy on direct: the model now matches config, so the plan is a clean no-op

latest (v1.24.0): same output as main (eb1328d)

TestAccept/bundle/migrate/auto/schema-rename/DMS=: branch ✅ | main (eb1328d) ❌ | latest (v1.24.0) ❌

main (eb1328d):

acceptance_test.go:1345: Diff:
        --- bundle/migrate/auto/schema-rename/output.txt
        +++ /tmp/TestAcceptbundlemigrateautoschema-renameDMS=3034785387/002/output.txt
        @@ -4,32 +4,23 @@
         
         === Rename the schema (an updatable id field) and deploy on direct
         >>> DATABRICKS_BUNDLE_ENGINE=direct [CLI] bundle deploy
        -Warn: migration to direct: schemas.my_schema: name differs between config ("myschema-[UNIQUE_NAME]-renamed") and terraform state ("myschema-[UNIQUE_NAME]"); this resource will be renamed.
        +Warn: migration to direct: schemas.my_schema: name differs between config ("myschema-[UNIQUE_NAME]-renamed") and terraform state ("myschema-[UNIQUE_NAME]"); this resource will be recreated.
         Notice: migrating your bundle to direct deployment engine (https://github.com/databricks/cli/issues/6765).
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/files...
        -Migrated 1 resource to direct deployment engine.
        -Updated schemas.my_schema
        -Files: 2 uploaded, 0 deleted
        -Resources: 0 created, 1 changed, 0 deleted, 0 unchanged
         
        -=== Redeploy on direct: the schema now matches config, so the plan is a clean no-op
        ->>> DATABRICKS_BUNDLE_ENGINE=direct [CLI] bundle deploy
        -Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]/files...
        -Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 1 unchanged
        +This action will result in the deletion or recreation of the following UC schemas. Any underlying data may be lost:
        +  recreate resources.schemas.my_schema
        +Warn: Migration not committed, keeping Terraform state
        +Error: the deployment requires destructive actions, but the current console does not support prompting.
        +Deleting data assets such as schemas, pipelines, or volumes may cause permanent data loss and should be carefully reviewed.
        +To proceed, use --auto-approve after reviewing the plan above.
         
        -=== The schema exists under the new name and the local state is direct
        ->>> [CLI] schemas get main.myschema-[UNIQUE_NAME]-renamed
        -{
        -  "full_name": "main.myschema-[UNIQUE_NAME]-renamed"
        -}
        +Files: 2 uploaded, 0 deleted
         
        ->>> find.py \.databricks/.*(\.tfstate|resources.*\.json|\.wal)
        -.databricks/bundle/default/resources.json
        -.databricks/bundle/default/terraform/terraform.tfstate.backup
        -
         === Cleanup
         >>> [CLI] bundle destroy --auto-approve
        +Warn: migration to direct: schemas.my_schema: name differs between config ("myschema-[UNIQUE_NAME]-renamed") and terraform state ("myschema-[UNIQUE_NAME]"); this resource will be recreated.
        +Notice: migrating your bundle to direct deployment engine (https://github.com/databricks/cli/issues/6765).
         The following resources will be deleted:
           delete resources.schemas.my_schema
         
        @@ -38,4 +22,7 @@
         
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/[UNIQUE_NAME]
         
        +Migrated 1 resource to direct deployment engine.
         Destroy: 1 deleted
        +
        +Exit code: 1

latest (v1.24.0): same output as main (eb1328d)

TestAccept/bundle/resources/catalogs/rename/DMS=: branch ✅ | main (eb1328d) ❌ | latest (v1.24.0) ❌

main (eb1328d):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrenameDMS=1274869503/002/output.txt
        @@ -73,7 +73,7 @@
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -92,8 +92,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -111,7 +111,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -133,8 +133,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -146,65 +146,21 @@
         === Deploy renames the catalog. UC moves the schema and the volume with it, so they get no request
         >>> [CLI] bundle deploy
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Updated catalogs.catalog1
        -Updated schemas.schema1
        -Updated volumes.volume1
        -Files: 1 uploaded, 0 deleted
        -Resources: 0 created, 3 changed, 0 deleted, 0 unchanged
         
        ->>> print_requests.py //unity-catalog
        -{
        -  "method": "PATCH",
        -  "path": "/api/2.1/unity-catalog/catalogs/test_catalog_[UNIQUE_NAME]",
        -  "body": {
        -    "comment": "",
        -    "custom_max_retention_hours": 0,
        -    "new_name": "test_catalog_renamed_[UNIQUE_NAME]"
        -  }
        -}
        +This action will result in the deletion or recreation of the following UC schemas. Any underlying data may be lost:
        +  recreate resources.schemas.schema1
         
        -=== The old catalog is gone and the schema and the volume are under the new one, with their original ids
        -old catalog is gone
        +This action will result in the deletion or recreation of the following volumes.
        +For managed volumes, the files stored in the volume are also deleted from your
        +cloud tenant within 30 days. For external volumes, the metadata about the volume
        +is removed from the catalog, but the underlying files are not deleted:
        +  recreate resources.volumes.volume1
        +Error: the deployment requires destructive actions, but the current console does not support prompting.
        +Deleting data assets such as schemas, pipelines, or volumes may cause permanent data loss and should be carefully reviewed.
        +To proceed, use --auto-approve after reviewing the plan above.
         
        ->>> [CLI] schemas get test_catalog_renamed_[UNIQUE_NAME].myschema
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "schema_id": "[SCHEMA_ID]"
        -}
        +Files: 1 uploaded, 0 deleted
         
        ->>> [CLI] volumes read test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "volume_id": "[VOLUME_ID]"
        -}
        -
        -=== The state tracks the new paths
        ->>> [CLI] bundle summary --output json
        -{
        -  "catalogs": {
        -    "catalog1": "test_catalog_renamed_[UNIQUE_NAME]"
        -  },
        -  "schemas": {
        -    "schema1": "test_catalog_renamed_[UNIQUE_NAME].myschema"
        -  },
        -  "volumes": {
        -    "volume1": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume"
        -  }
        -}
        -
        -=== Redeploy is a no-op
        ->>> [CLI] bundle plan
        -Plan: 0 to add, 0 to change, 0 to delete, 3 unchanged
        -
        ->>> [CLI] bundle deploy
        -Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 3 unchanged
        -
        ->>> print_requests.py //unity-catalog
        -
         >>> [CLI] bundle destroy --auto-approve
         The following resources will be deleted:
           delete resources.catalogs.catalog1
        @@ -223,3 +175,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default
         
         Destroy: 3 deleted
        +
        +Exit code: 1
        
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_dvball2kr5fyrl2ukiujtqt2im.myschema.myvolume"
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_dvball2kr5fyrl2ukiujtqt2im.myschema",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_dvball2kr5fyrl2ukiujtqt2im",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }

latest (v1.24.0):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrenameDMS=1977704439/002/output.txt
        @@ -73,7 +73,7 @@
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -92,8 +92,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -111,7 +111,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -133,8 +133,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -146,65 +146,21 @@
         === Deploy renames the catalog. UC moves the schema and the volume with it, so they get no request
         >>> [CLI] bundle deploy
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Updated catalogs.catalog1
        -Updated schemas.schema1
        -Updated volumes.volume1
        -Files: 1 uploaded, 0 deleted
        -Resources: 0 created, 3 changed, 0 deleted, 0 unchanged
         
        ->>> print_requests.py //unity-catalog
        -{
        -  "method": "PATCH",
        -  "path": "/api/2.1/unity-catalog/catalogs/test_catalog_[UNIQUE_NAME]",
        -  "body": {
        -    "comment": "",
        -    "custom_max_retention_hours": 0,
        -    "new_name": "test_catalog_renamed_[UNIQUE_NAME]"
        -  }
        -}
        +This action will result in the deletion or recreation of the following UC schemas. Any underlying data may be lost:
        +  recreate resources.schemas.schema1
         
        -=== The old catalog is gone and the schema and the volume are under the new one, with their original ids
        -old catalog is gone
        +This action will result in the deletion or recreation of the following volumes.
        +For managed volumes, the files stored in the volume are also deleted from your
        +cloud tenant within 30 days. For external volumes, the metadata about the volume
        +is removed from the catalog, but the underlying files are not deleted:
        +  recreate resources.volumes.volume1
        +Error: the deployment requires destructive actions, but the current console does not support prompting.
        +Deleting data assets such as schemas, pipelines, or volumes may cause permanent data loss and should be carefully reviewed.
        +To proceed, use --auto-approve after reviewing the plan above.
         
        ->>> [CLI] schemas get test_catalog_renamed_[UNIQUE_NAME].myschema
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "schema_id": "[SCHEMA_ID]"
        -}
        +Files: 1 uploaded, 0 deleted
         
        ->>> [CLI] volumes read test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "volume_id": "[VOLUME_ID]"
        -}
        -
        -=== The state tracks the new paths
        ->>> [CLI] bundle summary --output json
        -{
        -  "catalogs": {
        -    "catalog1": "test_catalog_renamed_[UNIQUE_NAME]"
        -  },
        -  "schemas": {
        -    "schema1": "test_catalog_renamed_[UNIQUE_NAME].myschema"
        -  },
        -  "volumes": {
        -    "volume1": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume"
        -  }
        -}
        -
        -=== Redeploy is a no-op
        ->>> [CLI] bundle plan
        -Plan: 0 to add, 0 to change, 0 to delete, 3 unchanged
        -
        ->>> [CLI] bundle deploy
        -Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 3 unchanged
        -
        ->>> print_requests.py //unity-catalog
        -
         >>> [CLI] bundle destroy --auto-approve
         The following resources will be deleted:
           delete resources.catalogs.catalog1
        @@ -223,3 +175,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default
         
         Destroy: 3 deleted
        +
        +Exit code: 1
        
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_jrq4spvgcne2lirijhqcaslyne.myschema.myvolume"
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_jrq4spvgcne2lirijhqcaslyne.myschema",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_jrq4spvgcne2lirijhqcaslyne",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
TestAccept/bundle/resources/catalogs/rename/DMS=true: branch ✅ | main (eb1328d) ❌ | latest (v1.24.0) ❌

main (eb1328d):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrenameDMS=true3177976953/002/output.txt
        @@ -73,7 +73,7 @@
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -92,8 +92,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -111,7 +111,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -133,8 +133,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -146,65 +146,21 @@
         === Deploy renames the catalog. UC moves the schema and the volume with it, so they get no request
         >>> [CLI] bundle deploy
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Updated catalogs.catalog1
        -Updated schemas.schema1
        -Updated volumes.volume1
        -Files: 1 uploaded, 0 deleted
        -Resources: 0 created, 3 changed, 0 deleted, 0 unchanged
         
        ->>> print_requests.py //unity-catalog
        -{
        -  "method": "PATCH",
        -  "path": "/api/2.1/unity-catalog/catalogs/test_catalog_[UNIQUE_NAME]",
        -  "body": {
        -    "comment": "",
        -    "custom_max_retention_hours": 0,
        -    "new_name": "test_catalog_renamed_[UNIQUE_NAME]"
        -  }
        -}
        +This action will result in the deletion or recreation of the following UC schemas. Any underlying data may be lost:
        +  recreate resources.schemas.schema1
         
        -=== The old catalog is gone and the schema and the volume are under the new one, with their original ids
        -old catalog is gone
        +This action will result in the deletion or recreation of the following volumes.
        +For managed volumes, the files stored in the volume are also deleted from your
        +cloud tenant within 30 days. For external volumes, the metadata about the volume
        +is removed from the catalog, but the underlying files are not deleted:
        +  recreate resources.volumes.volume1
        +Error: the deployment requires destructive actions, but the current console does not support prompting.
        +Deleting data assets such as schemas, pipelines, or volumes may cause permanent data loss and should be carefully reviewed.
        +To proceed, use --auto-approve after reviewing the plan above.
         
        ->>> [CLI] schemas get test_catalog_renamed_[UNIQUE_NAME].myschema
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "schema_id": "[SCHEMA_ID]"
        -}
        +Files: 1 uploaded, 0 deleted
         
        ->>> [CLI] volumes read test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "volume_id": "[VOLUME_ID]"
        -}
        -
        -=== The state tracks the new paths
        ->>> [CLI] bundle summary --output json
        -{
        -  "catalogs": {
        -    "catalog1": "test_catalog_renamed_[UNIQUE_NAME]"
        -  },
        -  "schemas": {
        -    "schema1": "test_catalog_renamed_[UNIQUE_NAME].myschema"
        -  },
        -  "volumes": {
        -    "volume1": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume"
        -  }
        -}
        -
        -=== Redeploy is a no-op
        ->>> [CLI] bundle plan
        -Plan: 0 to add, 0 to change, 0 to delete, 3 unchanged
        -
        ->>> [CLI] bundle deploy
        -Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 3 unchanged
        -
        ->>> print_requests.py //unity-catalog
        -
         >>> [CLI] bundle destroy --auto-approve
         The following resources will be deleted:
           delete resources.catalogs.catalog1
        @@ -223,3 +175,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default
         
         Destroy: 3 deleted
        +
        +Exit code: 1
        
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_gqfujv5y6rfd7fqhkd3ibulpya.myschema.myvolume"
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_gqfujv5y6rfd7fqhkd3ibulpya.myschema",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_gqfujv5y6rfd7fqhkd3ibulpya",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }

latest (v1.24.0):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrenameDMS=true948909834/002/output.txt
        @@ -73,7 +73,7 @@
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -92,8 +92,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -111,7 +111,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "recreate",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -133,8 +133,8 @@
             },
             "changes": {
               "catalog_name": {
        -        "action": "update_id",
        -        "reason": "parent_renamed",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
                 "new": "test_catalog_renamed_[UNIQUE_NAME]",
                 "remote": "test_catalog_[UNIQUE_NAME]"
        @@ -146,65 +146,21 @@
         === Deploy renames the catalog. UC moves the schema and the volume with it, so they get no request
         >>> [CLI] bundle deploy
         Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Updated catalogs.catalog1
        -Updated schemas.schema1
        -Updated volumes.volume1
        -Files: 1 uploaded, 0 deleted
        -Resources: 0 created, 3 changed, 0 deleted, 0 unchanged
         
        ->>> print_requests.py //unity-catalog
        -{
        -  "method": "PATCH",
        -  "path": "/api/2.1/unity-catalog/catalogs/test_catalog_[UNIQUE_NAME]",
        -  "body": {
        -    "comment": "",
        -    "custom_max_retention_hours": 0,
        -    "new_name": "test_catalog_renamed_[UNIQUE_NAME]"
        -  }
        -}
        +This action will result in the deletion or recreation of the following UC schemas. Any underlying data may be lost:
        +  recreate resources.schemas.schema1
         
        -=== The old catalog is gone and the schema and the volume are under the new one, with their original ids
        -old catalog is gone
        +This action will result in the deletion or recreation of the following volumes.
        +For managed volumes, the files stored in the volume are also deleted from your
        +cloud tenant within 30 days. For external volumes, the metadata about the volume
        +is removed from the catalog, but the underlying files are not deleted:
        +  recreate resources.volumes.volume1
        +Error: the deployment requires destructive actions, but the current console does not support prompting.
        +Deleting data assets such as schemas, pipelines, or volumes may cause permanent data loss and should be carefully reviewed.
        +To proceed, use --auto-approve after reviewing the plan above.
         
        ->>> [CLI] schemas get test_catalog_renamed_[UNIQUE_NAME].myschema
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "schema_id": "[SCHEMA_ID]"
        -}
        +Files: 1 uploaded, 0 deleted
         
        ->>> [CLI] volumes read test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume
        -{
        -  "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume",
        -  "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -  "volume_id": "[VOLUME_ID]"
        -}
        -
        -=== The state tracks the new paths
        ->>> [CLI] bundle summary --output json
        -{
        -  "catalogs": {
        -    "catalog1": "test_catalog_renamed_[UNIQUE_NAME]"
        -  },
        -  "schemas": {
        -    "schema1": "test_catalog_renamed_[UNIQUE_NAME].myschema"
        -  },
        -  "volumes": {
        -    "volume1": "test_catalog_renamed_[UNIQUE_NAME].myschema.myvolume"
        -  }
        -}
        -
        -=== Redeploy is a no-op
        ->>> [CLI] bundle plan
        -Plan: 0 to add, 0 to change, 0 to delete, 3 unchanged
        -
        ->>> [CLI] bundle deploy
        -Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default/files...
        -Files: 0 uploaded, 0 deleted
        -Resources: 0 created, 0 changed, 0 deleted, 3 unchanged
        -
        ->>> print_requests.py //unity-catalog
        -
         >>> [CLI] bundle destroy --auto-approve
         The following resources will be deleted:
           delete resources.catalogs.catalog1
        @@ -223,3 +175,5 @@
         All files and directories at the following location will be deleted: /Workspace/Users/[USERNAME]/.bundle/test-bundle-[UNIQUE_NAME]/default
         
         Destroy: 3 deleted
        +
        +Exit code: 1
        
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_ks3nd57pqnbfvczpuonri7fn3m.myschema.myvolume"
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_ks3nd57pqnbfvczpuonri7fn3m.myschema",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_ks3nd57pqnbfvczpuonri7fn3m",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
TestAccept/bundle/resources/catalogs/rename_all_out_of_band/DMS=: branch ✅ | main (eb1328d) ❌ | latest (v1.24.0) ❌

main (eb1328d):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename_all_out_of_band/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrename_all_out_of_bandDMS=2824455939/002/output.txt
        @@ -51,49 +51,35 @@
             }
           },
           "resources.schemas.schema1": {
        -    "id": "test_catalog_renamed_[UNIQUE_NAME].myschema2",
             "depends_on": [
               {
                 "node": "resources.catalogs.catalog1",
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "create",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
                 "name": "myschema2"
               }
             },
        -    "remote_state": {
        -      "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -      "catalog_type": "MANAGED_CATALOG",
        -      "created_at": [UNIX_TIME_MILLIS][0],
        -      "created_by": "[USERNAME]",
        -      "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema2",
        -      "name": "myschema2",
        -      "owner": "[USERNAME]",
        -      "schema_id": "[SCHEMA_ID]"
        -    },
             "changes": {
               "catalog_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
        -        "new": "test_catalog_renamed_[UNIQUE_NAME]",
        -        "remote": "test_catalog_renamed_[UNIQUE_NAME]"
        +        "new": "test_catalog_renamed_[UNIQUE_NAME]"
               },
               "name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "myschema",
        -        "new": "myschema2",
        -        "remote": "myschema2"
        +        "new": "myschema2"
               }
             }
           },
           "resources.volumes.volume1": {
        -    "id": "test_catalog_renamed_[UNIQUE_NAME].myschema2.myvolume2",
             "depends_on": [
               {
                 "node": "resources.catalogs.catalog1",
        @@ -104,7 +68,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "create",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -113,38 +77,24 @@
                 "volume_type": "MANAGED"
               }
             },
        -    "remote_state": {
        -      "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -      "created_at": [UNIX_TIME_MILLIS][1],
        -      "created_by": "[USERNAME]",
        -      "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema2.myvolume2",
        -      "name": "myvolume2",
        -      "owner": "[USERNAME]",
        -      "schema_name": "myschema2",
        -      "volume_id": "[VOLUME_ID]",
        -      "volume_type": "MANAGED"
        -    },
             "changes": {
               "catalog_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
        -        "new": "test_catalog_renamed_[UNIQUE_NAME]",
        -        "remote": "test_catalog_renamed_[UNIQUE_NAME]"
        +        "new": "test_catalog_renamed_[UNIQUE_NAME]"
               },
               "name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "update_id",
        +        "reason": "id_changes",
                 "old": "myvolume",
        -        "new": "myvolume2",
        -        "remote": "myvolume2"
        +        "new": "myvolume2"
               },
               "schema_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "myschema",
        -        "new": "myschema2",
        -        "remote": "myschema2"
        +        "new": "myschema2"
               }
             }
           }
        @@ -160,9 +101,9 @@
         API error_code: CATALOG_ALREADY_EXISTS
         API message: Catalog 'test_catalog_renamed_[UNIQUE_NAME]' already exists
         
        -Error: cannot update_id resources.schemas.schema1: dependency failed: resources.catalogs.catalog1
        +Error: cannot create resources.schemas.schema1: dependency failed: resources.catalogs.catalog1
         
        -Error: cannot update_id resources.volumes.volume1: dependency failed: resources.catalogs.catalog1
        +Error: cannot create resources.volumes.volume1: dependency failed: resources.catalogs.catalog1
         
         Files: 3 uploaded, 0 deleted
         
        
    acceptance_test.go:1123: 
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/catalogs",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "name": "test_catalog_rpixcxrxtjdetcxflms4akimky"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/schemas",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "catalog_name": "test_catalog_rpixcxrxtjdetcxflms4akimky",
        LOG.deploy_requests:     "name": "myschema"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/volumes",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "catalog_name": "test_catalog_rpixcxrxtjdetcxflms4akimky",
        LOG.deploy_requests:     "name": "myvolume",
        LOG.deploy_requests:     "schema_name": "myschema",
        LOG.deploy_requests:     "volume_type": "MANAGED"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "POST",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs",
        LOG.destroy_requests:   "body": {
        LOG.destroy_requests:     "name": "test_catalog_renamed_rpixcxrxtjdetcxflms4akimky"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_renamed_rpixcxrxtjdetcxflms4akimky",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
    acceptance_test.go:1123: 
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_rpixcxrxtjdetcxflms4akimky.myschema.myvolume",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "myvolume2"
        LOG.rename_requests:   }
        LOG.rename_requests: }
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_rpixcxrxtjdetcxflms4akimky.myschema",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "myschema2"
        LOG.rename_requests:   }
        LOG.rename_requests: }
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_rpixcxrxtjdetcxflms4akimky",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "test_catalog_renamed_rpixcxrxtjdetcxflms4akimky"
        LOG.rename_requests:   }
        LOG.rename_requests: }

latest (v1.24.0):

acceptance_test.go:1345: Diff:
        --- bundle/resources/catalogs/rename_all_out_of_band/output.txt
        +++ /tmp/TestAcceptbundleresourcescatalogsrename_all_out_of_bandDMS=810209240/002/output.txt
        @@ -51,49 +51,35 @@
             }
           },
           "resources.schemas.schema1": {
        -    "id": "test_catalog_renamed_[UNIQUE_NAME].myschema2",
             "depends_on": [
               {
                 "node": "resources.catalogs.catalog1",
                 "label": "${resources.catalogs.catalog1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "create",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
                 "name": "myschema2"
               }
             },
        -    "remote_state": {
        -      "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -      "catalog_type": "MANAGED_CATALOG",
        -      "created_at": [UNIX_TIME_MILLIS][0],
        -      "created_by": "[USERNAME]",
        -      "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema2",
        -      "name": "myschema2",
        -      "owner": "[USERNAME]",
        -      "schema_id": "[SCHEMA_ID]"
        -    },
             "changes": {
               "catalog_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
        -        "new": "test_catalog_renamed_[UNIQUE_NAME]",
        -        "remote": "test_catalog_renamed_[UNIQUE_NAME]"
        +        "new": "test_catalog_renamed_[UNIQUE_NAME]"
               },
               "name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "myschema",
        -        "new": "myschema2",
        -        "remote": "myschema2"
        +        "new": "myschema2"
               }
             }
           },
           "resources.volumes.volume1": {
        -    "id": "test_catalog_renamed_[UNIQUE_NAME].myschema2.myvolume2",
             "depends_on": [
               {
                 "node": "resources.catalogs.catalog1",
        @@ -104,7 +68,7 @@
                 "label": "${resources.schemas.schema1.name}"
               }
             ],
        -    "action": "update_id",
        +    "action": "create",
             "new_state": {
               "value": {
                 "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        @@ -113,38 +77,24 @@
                 "volume_type": "MANAGED"
               }
             },
        -    "remote_state": {
        -      "catalog_name": "test_catalog_renamed_[UNIQUE_NAME]",
        -      "created_at": [UNIX_TIME_MILLIS][1],
        -      "created_by": "[USERNAME]",
        -      "full_name": "test_catalog_renamed_[UNIQUE_NAME].myschema2.myvolume2",
        -      "name": "myvolume2",
        -      "owner": "[USERNAME]",
        -      "schema_name": "myschema2",
        -      "volume_id": "[VOLUME_ID]",
        -      "volume_type": "MANAGED"
        -    },
             "changes": {
               "catalog_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "test_catalog_[UNIQUE_NAME]",
        -        "new": "test_catalog_renamed_[UNIQUE_NAME]",
        -        "remote": "test_catalog_renamed_[UNIQUE_NAME]"
        +        "new": "test_catalog_renamed_[UNIQUE_NAME]"
               },
               "name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "update_id",
        +        "reason": "id_changes",
                 "old": "myvolume",
        -        "new": "myvolume2",
        -        "remote": "myvolume2"
        +        "new": "myvolume2"
               },
               "schema_name": {
        -        "action": "skip",
        -        "reason": "remote_already_set",
        +        "action": "recreate",
        +        "reason": "id_field",
                 "old": "myschema",
        -        "new": "myschema2",
        -        "remote": "myschema2"
        +        "new": "myschema2"
               }
             }
           }
        @@ -160,9 +101,9 @@
         API error_code: CATALOG_ALREADY_EXISTS
         API message: Catalog 'test_catalog_renamed_[UNIQUE_NAME]' already exists
         
        -Error: cannot update_id resources.schemas.schema1: dependency failed: resources.catalogs.catalog1
        +Error: cannot create resources.schemas.schema1: dependency failed: resources.catalogs.catalog1
         
        -Error: cannot update_id resources.volumes.volume1: dependency failed: resources.catalogs.catalog1
        +Error: cannot create resources.volumes.volume1: dependency failed: resources.catalogs.catalog1
         
         Files: 3 uploaded, 0 deleted
         
        
    acceptance_test.go:1123: 
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/catalogs",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "name": "test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/schemas",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "catalog_name": "test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy",
        LOG.deploy_requests:     "name": "myschema"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
        LOG.deploy_requests: {
        LOG.deploy_requests:   "method": "POST",
        LOG.deploy_requests:   "path": "/api/2.1/unity-catalog/volumes",
        LOG.deploy_requests:   "body": {
        LOG.deploy_requests:     "catalog_name": "test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy",
        LOG.deploy_requests:     "name": "myvolume",
        LOG.deploy_requests:     "schema_name": "myschema",
        LOG.deploy_requests:     "volume_type": "MANAGED"
        LOG.deploy_requests:   }
        LOG.deploy_requests: }
    acceptance_test.go:1123: 
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "POST",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs",
        LOG.destroy_requests:   "body": {
        LOG.destroy_requests:     "name": "test_catalog_renamed_d2s56nxkqncpnjpsj2e7qk4mqy"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
        LOG.destroy_requests: {
        LOG.destroy_requests:   "method": "DELETE",
        LOG.destroy_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_renamed_d2s56nxkqncpnjpsj2e7qk4mqy",
        LOG.destroy_requests:   "q": {
        LOG.destroy_requests:     "force": "true"
        LOG.destroy_requests:   }
        LOG.destroy_requests: }
    acceptance_test.go:1123: 
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/volumes/test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy.myschema.myvolume",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "myvolume2"
        LOG.rename_requests:   }
        LOG.rename_requests: }
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/schemas/test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy.myschema",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "myschema2"
        LOG.rename_requests:   }
        LOG.rename_requests: }
        LOG.rename_requests: {
        LOG.rename_requests:   "method": "PATCH",
        LOG.rename_requests:   "path": "/api/2.1/unity-catalog/catalogs/test_catalog_d2s56nxkqncpnjpsj2e7qk4mqy",
        LOG.rename_requests:   "body": {
        LOG.rename_requests:     "new_name": "test_catalog_renamed_d2s56nxkqncpnjpsj2e7qk4mqy"
        LOG.rename_requests:   }
        LOG.rename_requests: }

24 more failure details omitted, see the full report in the run.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

✅ Integration test report

Commit: d397965

Run: 42217785039

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 322 29 11:00
✅​ aws-windows-latest-4core-16gb 324 27 9:33
✅​ azure linux-2core-8gb 321 29 7:50
✅​ azure-windows-latest-4core-16gb 323 27 8:40
✅​ gcp linux-2core-8gb 322 29 8:29
✅​ gcp-windows-latest-4core-16gb 324 27 8:42
Top 10 slowest tests (at least 2 minutes):
duration env testname
4:02 aws linux-2core-8gb TestAccept/bundle/resources/schemas/rename_then_change/DMS=
3:09 aws-windows-latest-4core-16gb TestAccept
3:05 azure-windows-latest-4core-16gb TestAccept
3:02 gcp-windows-latest-4core-16gb TestAccept
2:45 aws linux-2core-8gb TestAccept/bundle/resources/schemas/rename_then_change/DMS=true
2:12 aws linux-2core-8gb TestFilerWorkspaceNotebook/rJupyterNb.ipynb
2:07 aws linux-2core-8gb TestAccept/bundle/resources/registered_models/basic/DMS=true
2:04 gcp linux-2core-8gb TestAccept/bundle/resources/schemas/rename_then_change/DMS=
2:00 aws linux-2core-8gb TestAccept/bundle/resources/registered_models/basic/DMS=
2:00 gcp linux-2core-8gb TestAccept/bundle/resources/schemas/rename_then_change/DMS=true

@denik
denik force-pushed the denik/models-rename branch from f364f17 to 18077b3 Compare November 5, 2026 15:30
@denik
denik force-pushed the denik/models-rename branch 2 times, most recently from 7716c7e to eb6d7fe Compare November 6, 2026 11:58
denik and others added 4 commits November 6, 2026 13:25
A registered model's name is now an updatable ID field: a rename sends
new_name and keeps the model's versions, instead of deleting and recreating
it. A model inside a renamed catalog or schema is re-keyed without a request,
like volumes; recreating it failed with RESOURCE_ALREADY_EXISTS.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
After an interrupted parent rename the plan reads the model at its stale ID and
has no remote state; sync aliases against the model at its new path instead.

Co-authored-by: Isaac <no-reply@databricks.com>
…s with their schema

A model missing from its recorded ID is planned as a create again, so
DoUpdateWithID always has the plan's remote state. A forced schema or catalog
delete in the test server now also deletes the registered models in it, like UC.

Co-authored-by: Isaac <no-reply@databricks.com>
@denik
denik force-pushed the denik/models-rename branch from eb6d7fe to d397965 Compare November 6, 2026 12:25

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants