on-run-start & on-run-end
dbt_project.yml
on-run-start: sql-statement | [sql-statement]
on-run-end: sql-statement | [sql-statement]
Definition
A SQL statement (or list of SQL statements) to be run at the start or end of the following commands:
dbt build
, dbt compile
, dbt docs generate
, dbt run
, dbt seed
, dbt snapshot
, or dbt test
.
on-run-start
and on-run-end
hooks can also call macros that return SQL statements.
Usage notes
- The
on-run-end
hook has additional jinja variables available in the context — check out the docs.
Examples
In older versions of dbt, the most common use of post-hook
was to execute grant
statements, to apply database permissions to models right after creating them. We recommend using the grants
resource config instead, in order to automatically apply grants when your dbt model runs.
Grant privileges on all schemas that dbt uses at the end of a run
This leverages the schemas variable that is only available in an on-run-end
hook.
dbt_project.yml
on-run-end:
- "{% for schema in schemas %}grant usage on schema {{ schema }} to group reporter; {% endfor %}"
Call a macro to grant privileges
dbt_project.yml
on-run-end: "{{ grant_select(schemas) }}"
Additional examples
We've compiled some more in-depth examples here.
0