feat: initial project setup

This commit is contained in:
Stijnvandenbroek
2026-03-03 12:18:30 +00:00
parent 62af3114be
commit 7dd520cf41
14 changed files with 295 additions and 1 deletions

View File

@@ -0,0 +1,36 @@
from pathlib import Path
from dagster import Definitions
from dagster_dbt import DbtCliResource, DbtProject, dbt_assets
# ---------------------------------------------------------------------------
# dbt project
# ---------------------------------------------------------------------------
DBT_PROJECT_DIR = Path(__file__).parent.parent / "dbt"
dbt_project = DbtProject(project_dir=str(DBT_PROJECT_DIR))
# When running locally outside Docker, generate/refresh the manifest automatically.
dbt_project.prepare_if_dev()
# ---------------------------------------------------------------------------
# dbt assets every dbt model/test/snapshot becomes a Dagster asset
# ---------------------------------------------------------------------------
@dbt_assets(manifest=dbt_project.manifest_path)
def dbt_project_assets(context, dbt: DbtCliResource):
yield from dbt.cli(["build"], context=context).stream()
# ---------------------------------------------------------------------------
# Definitions
# ---------------------------------------------------------------------------
defs = Definitions(
assets=[dbt_project_assets],
resources={
"dbt": DbtCliResource(project_dir=str(DBT_PROJECT_DIR)),
},
)