Autogenerate Lightdash-ready .yml files for your models
The beauty of Lightdash is that we’re pretty well synced with your dbt project. So, in Lightdash, Tables actually come from dbt models that have been defined in your dbt project’s .yml
files.
If your dbt model has been defined in a .yml file, it will appear in Lightdash as a Table.
Not too sure what a .yml file or a Table is? Be sure to check out our tutorial on Adding Tables to Lightdash for more details.
Auto-generate schema.yml
files
To make it faster to write and maintain your schema.yml
files, the Lightdash CLI will automatically generate and sync your schema.yml
files.
Inside your dbt project, open a terminal and run this command to generate the schema.yml
file for a model calledmymodel
:
This will create or update an existing schema.yml
file to add any new columns that have appeared in the database.
Auto-sync schema.yml
files after dbt run
Since the generate
command relies on your database schema to detect which columns are required, you’ll often want to run dbt run
before running generate
. You can combine dbt run
and lighdash generate
into one command which will run models and then regenerate theschema.yml
files for any models than changed:
Generating schema.yml
for multiple models
lightdash generate
supports dbt model selection syntax to generate files for a group of models:
Using doc blocks to build better .yml files
Doc blocks are markdown files defined in your dbt project that are useful for creating consistent documentation in your dbt project.
For example, if I have a field called product_category
that’s used a bunch of times throughout my project, I can create a doc block for this field:
I can then reference this doc block in my .yml files like so:
The docs for product_category
(in Lightdash and in your dbt documentation) will become the doc block I’ve written above.
The Lightdash CLI will automatically add doc blocks to your .yml files
The nice thing about doc blocks is that Lightdash automatically adds these to the .yml files it generates. For example, if I had a .yml file for my product_sales
model that looked like this:
Then, I did:
Then my product_sales.yml
file would be updated to include the doc block for product_category
:
We recommend using doc blocks whenever you can! They help with keeping the definitions of fields across your project consistent, and they also allow you to get great docs, completely automatically with the Lightdash CLI.