diff --git a/src/databricks/labs/ucx/hive_metastore/table_migrate.py b/src/databricks/labs/ucx/hive_metastore/table_migrate.py index 2b894841c6..dda7ceb13a 100644 --- a/src/databricks/labs/ucx/hive_metastore/table_migrate.py +++ b/src/databricks/labs/ucx/hive_metastore/table_migrate.py @@ -179,6 +179,12 @@ def _sql_migrate_view(self, src_view: ViewToMigrate) -> str: return src_view.sql_migrate_view(self.index()) def _migrate_external_table(self, src_table: Table, rule: Rule): + if src_table.object_type == "MANAGED": + logger.warning( + f"failed-to-migrate: Detected MANAGED table {src_table.name} on external storage, not currently " + f"supported by UCX" + ) + return False target_table_key = rule.as_uc_table_key table_migrate_sql = src_table.sql_migrate_external(target_table_key) logger.debug(f"Migrating external table {src_table.key} to using SQL query: {table_migrate_sql}") diff --git a/tests/unit/hive_metastore/test_table_migrate.py b/tests/unit/hive_metastore/test_table_migrate.py index 1187fb011d..caa3f666d0 100644 --- a/tests/unit/hive_metastore/test_table_migrate.py +++ b/tests/unit/hive_metastore/test_table_migrate.py @@ -70,7 +70,7 @@ def test_migrate_dbfs_root_tables_should_produce_proper_queries(ws): ) assert ( "SYNC TABLE `ucx_default`.`db1_dst`.`managed_mnt` FROM `hive_metastore`.`db1_src`.`managed_mnt`;" - in backend.queries + not in backend.queries ) assert ( "ALTER TABLE `hive_metastore`.`db1_src`.`managed_dbfs` " @@ -83,7 +83,7 @@ def test_migrate_dbfs_root_tables_should_produce_proper_queries(ws): ) in backend.queries assert ( "SYNC TABLE `ucx_default`.`db1_dst`.`managed_other` FROM `hive_metastore`.`db1_src`.`managed_other`;" - in backend.queries + not in backend.queries ) migrate_grants.apply.assert_called()