🛠 This page is for engineering teams self-hosting their own Lightdash instance. Lightdash upgrades Cloud for you, but the behavior changes listed here apply to Cloud projects from the version noted.
2.x to 3.0
Pre-aggregates don’t rebuild on every compile
In 2.x, Lightdash rebuilt every managed pre-aggregate on every project compile (alightdash deploy, a refresh from the UI, or a CLI compile). From 3.0, Lightdash materializes a pre-aggregate on a compile only the first time the pre-aggregate appears and when that compile changes its definition or the fields it reads. On a compile that leaves the definition unchanged, Lightdash doesn’t rebuild it. To keep the data fresh, Lightdash refreshes a pre-aggregate on its refresh.cron schedule or when you refresh it manually. See Scheduling refreshes for the full behavior.
What to do:
- Add a
refresh.cronschedule to each managed pre-aggregate whose data needs to stay fresh. Without a schedule, Lightdash keeps serving the last materialization until someone refreshes the pre-aggregate from Project Settings > Pre-aggregates. - If you refreshed pre-aggregates by refreshing the project, use Rebuild managed on that page instead, or call
POST /api/v1/projects/{projectUuid}/pre-aggregates/refreshfrom your orchestration afterdbt run. - Optional: set
refresh.on_change: falseon a pre-aggregate whose definition you edit often and would rather rebuild on its schedule. Either way, Lightdash stops serving the old data as soon as the definition changes.