Data Vault & dbt

OVM-ERD — Generate ER diagrams from dbt Data Vault projects

OVM-ERD generates Entity-Relationship Diagrams, SQL queries and metadata validation reports from dbt repositories.

[UPDATE 2026-10] OVM-ERD is no longer maintained.

OVM-ERD is a Python package for visualising and validating Data Vault-structured databases using metadata from dbt repositories. It can generate Entity-Relationship Diagrams (ERDs), SQL queries and metadata validation reports.

OVM-ERD package page on PyPI

View OVM-ERD on PyPI

Features

Installation

OVM-ERD requires a local installation of Graphviz. Install the Python package with:

pip install ovm-erd

Usage

Generate ER diagrams:

ovm-erd generate [graphviz|mermaid|drawio]

Generate Graphviz diagrams in a specific output folder:

ovm-erd generate graphviz --path /your/output/path

Generate diagrams separately for each ensemble or tag:

ovm-erd generate drawio --distinct

Generate SQL for a specific ensemble:

ovm-erd sql --ensemble your_ensemble_name

Validate metadata and generate an HTML report:

ovm-erd validate

Specify a custom validation report path:

ovm-erd validate --path /your/report/path

Python API

The functionality can also be called from Python:

from ovm_erd.repository_reader import build_metadata_dict
from ovm_erd.erd_graphviz import generate_graphviz

repository_path = "your/dbt/repo"
output_path = "output/graphviz"

metadata = build_metadata_dict(repository_path=repository_path)
generate_graphviz(metadata, output_dir=output_path)

Paths can also be set dynamically:

custom_repo_path = "/path/to/dbt/repository"
custom_output_path = "/path/to/output"

metadata = build_metadata_dict(repository_path=custom_repo_path)
generate_graphviz(metadata, output_dir=custom_output_path)

ERD colour coding

Entity Colour
Hub Light blue (#D6EAF8)
Satellite Light yellow (#FFFACD)
Link Light red (#F5B7B1)

Tests

pytest tests/

License

GPL © Ferry Ouwerkerk / Data-Project BV.