From 7da04f9baa2d67c5a57de426acacbfd97284f018 Mon Sep 17 00:00:00 2001 From: Tanner Wendland Date: Fri, 3 Apr 2026 11:13:05 -0500 Subject: [PATCH] feat: enhance database migration command with instance name and optimize bundle JSON resolution - Updated `cmd_migrate` to include instance name in migration logs. - Introduced `_resolve_bundle_json` function to cache and optimize bundle validation JSON retrieval. - Added `resolve_instance_name` function to extract the instance name from the cached bundle JSON. --- scripts/deploy.sh | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index f9b44b9..81708a2 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -48,10 +48,11 @@ cmd_deploy() { } cmd_migrate() { - local app_name + local app_name instance_name app_name="$(resolve_app_name)" - echo "==> Running database migrations (app=$app_name)..." - uv run python scripts/migrate.py --app-name "$app_name" + instance_name="$(resolve_instance_name)" + echo "==> Running database migrations (app=$app_name, instance=$instance_name)..." + uv run python scripts/migrate.py --app-name "$app_name" --instance "$instance_name" } cmd_start() { @@ -59,13 +60,28 @@ cmd_start() { databricks bundle run claw_app --target "$TARGET" } +_bundle_json="" +_resolve_bundle_json() { + # Cache the bundle validate JSON for repeated lookups + if [[ -z "$_bundle_json" ]]; then + _bundle_json="$(databricks bundle validate --target "$TARGET" -o json 2>/dev/null)" + fi +} + resolve_app_name() { - # Resolve the deployed app name from the bundle (respects name_prefix variable) - databricks bundle validate --target "$TARGET" -o json 2>/dev/null \ + _resolve_bundle_json + echo "$_bundle_json" \ | python3 -c "import sys,json; b=json.load(sys.stdin); print(list(b['resources']['apps'].values())[0]['name'])" \ 2>/dev/null || echo "claw-claw" } +resolve_instance_name() { + _resolve_bundle_json + echo "$_bundle_json" \ + | python3 -c "import sys,json; b=json.load(sys.stdin); print(list(b['resources']['database_instances'].values())[0]['name'])" \ + 2>/dev/null || echo "claw-claw-db" +} + cmd_app_deploy() { local app_name app_name="$(resolve_app_name)"