# When to Refresh What: Schema vs. Cache

**URL:** <https://community.omni.co/t/when-to-refresh-what-schema-vs-cache/430>\
**Category:** Modeling\
**Tags:** schema-refresh, cache, schema\
**Created:** [December 8, 2025, 11:04pm UTC](https://community.omni.co/t/when-to-refresh-what-schema-vs-cache/430 "2025-12-08T23:04:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![James](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@James](https://community.omni.co/u/James)\
**Post date:** [December 8, 2025, 11:04pm UTC](https://community.omni.co/t/when-to-refresh-what-schema-vs-cache/430/1 "2025-12-08T23:04:55Z")

</div>

A quick guide on deciding **when to refresh schema** and **when to refresh cache** in Omni.

* * *

## What’s the Difference?

- **Schema refresh** updates Omni’s understanding of your **database structure** (tables, columns, views).
- **Cache refresh** clears or rebuilds **stored query results** so users see fresher data.

* * *

## When to Refresh _Schema_

Refresh schema when the **structure of your database has changed** :

- A table or view was added, removed, or renamed
- Columns were added, removed, or renamed
- Data types or constraints changed
- dbt models were added or modified in a way that changes output structures

Schema refresh options:

- **Soft refresh** : picks up new/updated objects
- **Hard refresh** : also removes dropped objects

Docs for reference:

- Modeling overview: [Getting started with modeling | Omni Analytics Documentation](https://docs.omni.co/docs/modeling/overview)
- Schema refresh options: [Model management | Omni Analytics Documentation](https://docs.omni.co/docs/modeling/manage-develop/model-management)
- dbt integration: [dbt | Omni Analytics Documentation](https://docs.omni.co/docs/integrations/dbt)

* * *

## When to Refresh _Cache_

Refresh or expire cache when **the data has changed** , not the structure:

- New data has arrived (ETL/ELT updates)
- Existing values were updated or deleted
- You need dashboards or queries to show the latest state immediately

Docs for reference:

- Caching concepts: [Caching and Query Performance | Omni Analytics Documentation](https://docs.omni.co/docs/querying-and-sql/caching)
- Advanced model concepts (cache policies):  
[Developing in Omni: Advanced modeling concepts | Omni Analytics Documentation](https://docs.omni.co/guides/Developer%20Guides/advanced-model-concepts)

* * *

## Quick Decision Guide

| Situation | Refresh Schema? | Refresh Cache? |
| --- | --- | --- |
| A column/table was added or removed | ✅ Yes | ❌ Not needed |
| Data updated but schema stayed the same | ❌ No | ✅ Yes |
| dbt added a new model/table | ✅ Yes | Optional |
| A table was dropped in the source DB | ✅ Yes (hard) | ❌ No |
| Dashboard needs newest data ASAP | ❌ No | ✅ Yes |

* * *

## Summary

- **Schema refresh = structure changes**
- **Cache refresh = data changes**
- Use both intentionally to keep Omni fast, accurate, and up to date.
