The target path
The target path is the folder DRE writes its generated files to. It has nothing to do with a
profile’s target (the environment a connection uses). It’s target/ in the project unless set,
highest first, by:
--target-path <path>oncompile,validate,run,cleanandls;DRE_TARGET_PATH;target_path:indre_project.yml.
A relative path is relative to the project root, whichever of the three sets it; ~ is your home
directory. Compiled SQL, run outputs, schema snapshots, run_results.json and the manifest move
together. The path must be local or mounted: object storage URLs (s3://, gs://, abfss://)
are refused, but a filesystem mount that supports renames works, such as a Databricks Unity
Catalog Volume (/Volumes/... on Databricks compute), an NFS/EFS share or a gcsfuse mount. DRE
refuses a target path that is the project root, contains the project, or sits inside reports/,
macros/, lookups/ or dre_deps/. A path elsewhere inside the project is skipped when DRE
reads the project; add it to .gitignore (a new project’s .gitignore covers target/ only).
Schema-drift detection compares each run with the snapshot the last successful run left in the target path, so on an ephemeral runner (a job cluster, a CI runner) point it at a folder that outlives the run:
dre run --schedule close_monthly --target-path /mnt/shared/dre/targetIn a Databricks job, a Volume keeps the snapshots and the manifest between runs:
export DRE_TARGET_PATH=/Volumes/main/reporting/dre/targetdre run --schedule close_monthlyGive each job that runs at the same time its own target path; two runs sharing one overwrite
each other’s files and snapshots. dre clean deletes the target folder only if DRE created it
(it leaves a .dre_target file there) or it’s the project’s own target/, so a mistyped
--target-path can’t delete anything else.