Todd de Quincey
02/14/2024, 7:19 PMScout
02/14/2024, 7:19 PM@dbt_assets
decorator, you can specify a dbt profile target by passing the --target
argument within the dbt.cli
command. This is demonstrated in the documentation where the dbt.cli
command is used within the decorated function to execute dbt commands. Here's a step-by-step guide based on the documentation: 1. Define your dbt assets using the @dbt_assets
decorator and pass the path to your dbt manifest file. 2. In the body of the decorated function, use the dbt.cli
method from the DbtCliResource
to run dbt commands. 3. Include the --target
argument in the list of command-line arguments passed to dbt.cli
to specify the dbt profile target you want to use. Here is an example from the documentation that shows how to use the dbt.cli
method within the @dbt_assets
decorator: python from pathlib import Path from dagster import AssetExecutionContext from dagster_dbt import DbtCliResource, dbt_assets @dbt_assets(manifest=Path("target", "manifest.json")) def my_dbt_assets(context: AssetExecutionContext, dbt: DbtCliResource): # Specify the dbt profile target using the --target argument yield from dbt.cli(["build", "--target=my_target"], context=context).stream()
In this example, --target=my_target
specifies the dbt profile target to use when running the dbt build
command. Replace my_target
with the actual name of the profile target you want to use. Remember to ensure that the target you specify corresponds to a profile defined in your profiles.yml
file used by dbt.