dbt™️ Script checks

check-script-ref-and-source

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

repos:
  - repo: https://github.com/dbt-checkpoint/dbt-checkpoint
    rev: v1.0.0
    hooks:
      - id: check-script-ref-and-source

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

Example

repos:
  - repo: https://github.com/dbt-checkpoint/dbt-checkpoint
    rev: v1.0.0
    hooks:
      - id: check-script-semicolon

How it works

  • Hook takes all changed SQL files.

  • It parses SQL and finds all sources and refs. If those objects do not exist in manifest.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

Arguments

--ignore-dotless-table: consider all tables without dot in name as CTE

Example

repos:
  - repo: https://github.com/dbt-checkpoint/dbt-checkpoint
    rev: v1.0.0
    hooks:
      - id: check-script-has-no-table-name

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

Was this helpful?