dbt™️ Script checks
check-script-ref-and-source
check-script-ref-and-source
What it does
Ensures that the script contains only existing sources or macros.
When to use it
Make sure you have only valid ref and sources in your script and you do not want to wait for dbt run
to find them. This hook also finds all missing ref and sources, not find first missing only.
Arguments
--manifest
: location of manifest.json
file. Usually target/manifest.json
. This file contains a full representation of dbt project. Default: target/manifest.json
Example
Requirements
Model exists in manifest.json
1
Model exists in catalog.json
2
✅ Yes
❌ Not needed
1 It means that you need to run dbt parse
before run this hook (dbt >= 1.5).
2 It means that you need to run dbt docs generate
before run this hook.
check-script-semicolon
check-script-semicolon
What it does
Ensure that the script does not have a semicolon at the end of the file.
When to use it
Make sure you did not provide a semicolon at the end of the file.
Example
How it works
Hook takes all changed
SQL
files.It parses
SQL
and finds all sources and refs. If those objects do not exist inmanifest.json
, the hook fails.
Requirements
Model exists in manifest.json
1
Model exists in catalog.json
2
✅ Yes
❌ Not needed
1 It means that you need to run dbt parse
before run this hook (dbt >= 1.5).
2 It means that you need to run dbt docs generate
before run this hook.
How it works
Hook takes all changed
SQL
files.If the file contains a semicolon at the end of the file, the hook fails.
check-script-has-no-table-name
check-script-has-no-table-name
What it does
Ensures that the script is using only source or ref macro to specify the table name.
When to use it
To make sure that you have only refs and sources in your SQL
files.
Arguments
--ignore-dotless-table
: consider all tables without dot in name as CTE
Example
Requirements
Model exists in manifest.json
1
Model exists in catalog.json
2
❌ Not needed
❌ Not needed
1 It means that you need to run dbt parse
before run this hook (dbt >= 1.5).
2 It means that you need to run dbt docs generate
before run this hook.
How it works
Hook takes all changed
SQL
files.SQL
is parsed and if it contains direct tables (not ref() or source()), the hook fails.
Last updated