Deploy model

Isolated sandboxes. Canonical releases.

Stable targets for everyone; branch identity supplied at runtime. The DEV_<branch>_ prefix is never committed and never promoted.

Feature-branch sandbox

stable target · runtime prefix

Deploy to the stable sandbox target with a deterministic prefix derived from the branch name.

$ databricks bundle deploy -t sandbox \
    --var="resource_prefix=DEV_feature-dops-123_"

# creates / updates
DEV_feature-dops-123_customer-events-bronze-job
No collisions Auto cleanup on PR close

Official targets

dev · staging · prod

Promote by deploying merged code to an official target. Empty prefix, canonical resource names — no branch, user, or ticket baggage.

$ databricks bundle deploy -t dev

# creates / updates
customer-events-bronze-job
Canonical names Prefix never promoted

Same isolation model, mapped to each domain's native unit:

Databricks bundles → resource-name prefix Notebooks → workspace folder dbt → target schema

The prefix is derived, never invented

Feature-branch sandbox deployments use a deterministic DEV_<sanitized_branch_name>_ prefix — never a username, github actor, or workspace user.

feature/DOPS-123-add-customer-events
→ DEV_feature-dops-123-add-customer-events_

bugfix/DATA-982-null-schema
→ DEV_bugfix-data-982-null-schema_

hotfix/job-timeout
→ DEV_hotfix-job-timeout_

Promotion, not prefix-juggling

The feature-branch prefix is never promoted. Code is promoted by deploying the merged code to an official target with an empty prefix.

Feature branch sandbox target + DEV_<branch>_ prefix
Official dev dev target + empty prefix
Official staging staging target + empty prefix
Official prod prod target + empty prefix

Ship standardized data engineering projects.

Install the dops CLI and scaffold your first standardized project in under a minute.

$ pip install opendops
Read the docs