Skip to content
LakeBench
ProblemsCommunityPricing
Sign inStart practicing
Back
  1. Home
  2. Interview prep
  3. What is --full-refresh?

dbt · Incremental Models & Performance

What is --full-refresh?

Mediumdbt-23
full-refreshincrementalcli

Question

What does dbt --full-refresh do for incremental models?

Solution

--full-refresh forces dbt to rebuild incremental (and some other) models from scratch instead of applying a delta.

dbt run --full-refresh --select fct_orders
dbt build --full-refresh --select fct_orders

Effect on incremental models

normal incremental run  → is_incremental() true  → merge/append delta
--full-refresh          → drop/rebuild (or equivalent) → full SELECT

is_incremental() evaluates to false during a full refresh, so your historical filter is skipped and the whole dataset is rebuilt.

When you need it

  • Logic change that must rewrite old rows (new columns, fixed join bug)
  • Bad data landed and merges cannot easily repair history
  • Changing unique_key or incremental strategy
  • Schema drift that incremental apply cannot reconcile

Cost

Full refresh on a multi-terabyte fact can be expensive and long-running. Teams often full-refresh only selected models, or rebuild a bounded partition window instead.

Interview tip: "Incremental is the happy path; --full-refresh is the rebuild lever when history must be rewritten."

PreviousNext