{"id":39337183,"url":"https://github.com/dan1elt0m/unitycatalog-migrate","last_synced_at":"2026-01-18T02:13:34.233Z","repository":{"id":274381347,"uuid":"922724131","full_name":"dan1elt0m/unitycatalog-migrate","owner":"dan1elt0m","description":"Migrate Databricks Unity Catalog to OSS Unity Catalog","archived":false,"fork":false,"pushed_at":"2025-03-05T20:21:29.000Z","size":270,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T06:16:27.848Z","etag":null,"topics":["cli","databricks","migration","migration-tool","unitycatalog"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dan1elt0m.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-26T23:26:46.000Z","updated_at":"2025-03-05T20:21:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"3377743c-bc93-4c70-8081-0341fb701ccc","html_url":"https://github.com/dan1elt0m/unitycatalog-migrate","commit_stats":null,"previous_names":["dan1elt0m/ucm"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dan1elt0m/unitycatalog-migrate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan1elt0m%2Funitycatalog-migrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan1elt0m%2Funitycatalog-migrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan1elt0m%2Funitycatalog-migrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan1elt0m%2Funitycatalog-migrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dan1elt0m","download_url":"https://codeload.github.com/dan1elt0m/unitycatalog-migrate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dan1elt0m%2Funitycatalog-migrate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28526569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","databricks","migration","migration-tool","unitycatalog"],"created_at":"2026-01-18T02:13:29.451Z","updated_at":"2026-01-18T02:13:34.214Z","avatar_url":"https://github.com/dan1elt0m.png","language":"Python","readme":"[![test](https://github.com/dan1elt0m/unitycatalog-migrate/actions/workflows/test.yml/badge.svg)](https://github.com/dan1elt0m/unitycatalog-migrate/actions/workflows/test.yml)\n![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fdan1elt0m%2Funitycatalog-migrate%2Fmain%2Fpyproject.toml)\n\n\u003cp align=\"center\"\u003e\n    \u003cb\u003e🚀 UCM - OSS Unity Catalog Migration Assistant\u003c/b\u003e\n\u003c/p\u003e \n\nUCM is a CLI that provides commands for migrating catalogs, schemas, and tables from Databricks to Unity Catalog. \n\n## Requirements\n\n- Python 3.9 or higher\n- Databricks configuration file: https://docs.databricks.com/en/dev-tools/auth/config-profiles.html \n\n## Installation\n\nTo install the Unity Catalog Migrator, you can use the following commands:\n\n```shell\npipx install unitycatalog-migrate\n```\n\n## Usage\n\n### Migrate Catalogs\n```shell\nucm migrate-catalog NAMES... --profile \u003cdatabricks-profile\u003e \n```\n\n### Migrate Schemas\n```shell\nucm migrate-schema FULL_NAMES... --profile \u003cdatabricks-profile\u003e \n```\nwhere FULL_NAMES are in the format `catalog.schema`\n\n### Migrate Tables\n```shell\nucm migrate-table FULL_NAMES..  --profile \u003cdatabricks-profile\u003e  \n```\nwhere FULL_NAMES are in the format `catalog.schema.table`\n\n## Configuration\n\nThe Unity Catalog Migrator uses the following environment variables:\n- UC_HOST_URL: The URL of the Unity Catalog server. Default is `http://localhost:8080/api/2.1/unity-catalog`.\n- UC_TOKEN: The token to authenticate with the Unity Catalog server. Default is `None`. You can also pass the token as\n    an argument to the command.\n\n## Example\n```shell\n# First migrate catalog and schema\nucm migrate-catalog catalog1 --profile DATABRICKS_TEST\nucm migrate-schema catalog1.schema1 --profile DATABRICKS_TEST\n\n# Use Databricks CLI to get all tables of schema\ntable_names=$(databricks tables list catalog1 schema1 --profile DATABRICKS_TEST | awk 'NR\u003e1 {print $1}' | paste -sd ' ' -)\n# Migrate the tables to Unity Catalog using \necho $table_names | xargs ucm migrate-table --profile DATABRICKS_TEST \n\n[13:45:46] [ Success ] catalog1.schema1.table1                                                                                                                                     \n           [ Success ] catalog1.schema1.table2                                                                                                                        \n           [ Success ] catalog1.schema1.table3                                                                                                                        \n           [ Success ] catalog1.schema1.table4                                                                                                                        \n           [ Success ] catalog1.schema1.table5                                                                                                                        \n           [ Skipped ] catalog1.schema1.table6                                                                                                                        \n           [ Success ] catalog1.schema1.table7                                                                                                                        \n           [ Failed  ] catalog1.schema1.table8                                                                                                                        \n┏━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓\n┃ Result                ┃ Count ┃\n┡━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩\n│ Successfully migrated │ 6     │\n│ Skipped               │ 1     │\n│ Errors                │ 1     │\n└───────────────────────┴───────┘\n\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃ Skipped                              ┃ Reason                       ┃ \n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ catalog1.schema1.table6              │ Table already Exists         ┃\n│                                      │                              ┃ \n└──────────────────────────────────────┴──────────────────────────────┘\n\n┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n┃ Error                                ┃ Reason                       ┃ \n┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩\n│ catalog1.schema1.table8              │ Variant Type not supported   ┃\n│                                      │                              ┃ \n└──────────────────────────────────────┴──────────────────────────────┘\n\n\n```\n\n### Remarks\n- ucm skips already existing catalogs, schemas or tables (if desired, we can add a force option)\n\n### Not supported:\n- system tables \n- Variant datatype\n\n### Wishlist\n- migrate functions command\n- migrate models command\n- update existing tables (sync)\n\n## Contributing\n- Contributions are welcome. Please fork and make a PR and I'll take a look asap.\n- Star the repo if you like it.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan1elt0m%2Funitycatalog-migrate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan1elt0m%2Funitycatalog-migrate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan1elt0m%2Funitycatalog-migrate/lists"}