Using --defer in Paradime
Last updated
Last updated
The --defer
feature in Paradime allows you to leverage production data and schemas during development, significantly speeding up your dbt™ workflow. This guide will walk you through using --defer
, from basic usage to advanced features.
With Paradime, you can continuously develop using production data and schema. By enabling defer to prod
in a dbt™ run command, Paradime automatically fetches the latest manifest.json
, ensuring you always work with the most current data and schema.
A connected Scheduler Connection to your data warehouse
An existing Bolt Schedule
An Enabled "Defer to Production" Schedule
When using --defer
, dbt™ resolves ref
calls based on two criteria:
Is the referenced node included in the current run's model selection?
Does the reference node exist as a database object in your development environment?
If both answers are No, --defer
resolves the ref()
using the namespace from the state manifest of the specified schedule.
When defer to prod
if you run a dbt™️ command Paradime will automatically run the dbt command in "defer mode" in the Code IDE's integrated terminal (you wont need to use --defer
) but simply :
To illustrate the effect of using defer to prod, here's a comparison of compiled SQL:
Notice how the deferred run uses the production schema (dbt_prod
), while the standard run uses the development schema (dbt_fabio
).
After running a dbt™ command with "defer to prod", you can view details of the production run used for deferral in the Integrated Terminal. The output includes a clickable URL to the Bolt UI for more information.
The --favor-state
flag provides additional control over how dbt™ resolves node references:
This command tells dbt™ to prefer the state from the 'daily_run' schedule, even if the models exist in your current environment.
Read about state comparison caveats and limitations.