<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8" -->

---
title: Running DBT Natively on Snowflake | daily.dev
description: A step-by-step walkthrough for deploying and running dbt projects natively inside Snowflake using the DBT PROJECT object, Snowflake Workspaces, tasks, and the...
canonical: https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Running DBT Natively on Snowflake | daily.dev
og:description: A step-by-step walkthrough for deploying and running dbt projects natively inside Snowflake using the DBT PROJECT object, Snowflake Workspaces, tasks, and the...
og:url: https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8
og:image: https://api.daily.dev/og/posts/01EC1hnX8.png
og:image:alt: Running DBT Natively on Snowflake
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Running DBT Natively on Snowflake

**[Snowflake Community](https://daily.dev/sources/snowflake_comm)** · 9 min read · 0 upvotes · 0 comments

## Summary

A step-by-step walkthrough for deploying and running dbt projects natively inside Snowflake using the DBT PROJECT object, Snowflake Workspaces, tasks, and the Snowflake CLI. Covers the cost model comparison between dbt Cloud and native Snowflake execution (compute-only vs. per-seat licensing), project setup with Bronze/Silver/Gold layers using a FIFA World Cup analytics example, schema customization via macro override, scheduling with Snowflake tasks, observability through Snowsight DAG rendering, and CI/CD integration. Includes practical gotchas around immutable versions, external access integrations for remote packages, and local dependency packaging.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://medium.com/snowflake/running-dbt-natively-on-snowflake-00bfb3a8f5f8>

## Questions this post answers

### How does the cost of running dbt natively as a Snowflake DBT PROJECT object compare to dbt Cloud?

Running dbt natively on Snowflake only incurs standard virtual warehouse compute costs with no additional licensing or per-seat fees. dbt Cloud, by contrast, charges per-developer-seat licensing on Team and Enterprise tiers plus consumption-based run pricing, and Snowflake still bills separately for the compute that executes each dbt run. Native execution is generally cheaper for Snowflake-only stacks that mainly need scheduling, lineage, and docs.

_Weighing dbt Cloud against native Snowflake execution is easier with cost breakdowns like this on daily.dev._

### Why does my dbt schema get prefixed like PUBLIC_SILVER instead of just SILVER when running on Snowflake?

By default dbt prefixes custom schema names with the target schema, turning a configured SILVER schema into something like DEV_SILVER. Fixing this requires overriding the generate_schema_name macro in macros/generate_schema_name.sql to return the custom schema name directly instead of concatenating it with the target schema, which is the officially supported way to control exact schema names.

_Debugging dbt schema naming quirks on Snowflake gets faster with concrete fixes surfaced on daily.dev._

### How do I reference a local dbt package dependency when deploying a project as a Snowflake DBT PROJECT object?

A deployed Snowflake dbt project is a self-contained snapshot that cannot reach files outside its own folder, so pointing a local dependency at a sibling directory like ../some_other_project will not work. The fix is to copy the other project inside your own project folder, for example under local_packages/, and reference it with an inside path such as local: local_packages/some_other_project so everything deploys as one unit.

_Working through dbt packaging constraints on Snowflake is easier with walkthroughs like this via daily.dev._

## Similar posts on daily.dev

- [SDLC Using DBT Projects in Snowflake, Integrated with GitHub](https://daily.dev/posts/sdlc-using-dbt-projects-in-snowflake-integrated-with-github-2kwvg4cya) · Snowflake Community · 0 upvotes · 0 comments
- [Your Data Pipeline Shouldn’t Require a PhD in YAML](https://daily.dev/posts/your-data-pipeline-shouldn-t-require-a-phd-in-yaml-te9wqbvsy) · Snowflake Community · 0 upvotes · 0 comments
- [dbt Projects on Snowflake: Build & Deploy with Cortex Code](https://daily.dev/posts/dbt-projects-on-snowflake-build-deploy-with-cortex-code-lv79c0hf0) · Snowflake · 0 upvotes · 0 comments
- [Automate Your DBT Pipelines Using DBT Projects Feature: CI/CD and Dynamic Orchestration on Snowflake](https://daily.dev/posts/automate-your-dbt-pipelines-using-dbt-projects-feature-ci-cd-and-dynamic-orchestration-on-snowflake-gjxbbezkm) · Snowflake Community · 0 upvotes · 0 comments
- [Snowflake Cortex Code CLI adds dbt and Apache Airflow support for AI-powered data pipelines](https://daily.dev/posts/snowflake-cortex-code-cli-adds-dbt-and-apache-airflow-support-for-ai-powered-data-pipelines-yrixxu8v0) · The New Stack · 1 upvotes · 0 comments

---

Tags: [#backend](https://daily.dev/tags/backend), [#cicd](https://daily.dev/tags/cicd), [#data-analysis](https://daily.dev/tags/data-analysis), [#snowflake](https://daily.dev/tags/snowflake)

[View this post on daily.dev](https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Running DBT Natively on Snowflake","url":"https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8"},"datePublished":"2026-07-13T19:14:28.090Z","dateModified":"2026-09-13T20:53:07.392Z","description":"A step-by-step walkthrough for deploying and running dbt projects natively inside Snowflake using the DBT PROJECT object, Snowflake Workspaces, tasks, and the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b5eaf6e63694e0d6521cc82619fc4ef8?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/b5eaf6e63694e0d6521cc82619fc4ef8?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Snowflake Community","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Snowflake Community","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/3eb5260f70bb4653be0f9581c0d937c8","url":"https://daily.dev/sources/snowflake_comm"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"backend,cicd,data-analysis,snowflake","timeRequired":"PT9M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Snowflake Community","item":"https://daily.dev/sources/snowflake_comm"},{"@type":"ListItem","position":3,"name":"Running DBT Natively on Snowflake"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/running-dbt-natively-on-snowflake-01ec1hnx8#faq","mainEntity":[{"@type":"Question","name":"How does the cost of running dbt natively as a Snowflake DBT PROJECT object compare to dbt Cloud?","acceptedAnswer":{"@type":"Answer","text":"Running dbt natively on Snowflake only incurs standard virtual warehouse compute costs with no additional licensing or per-seat fees. dbt Cloud, by contrast, charges per-developer-seat licensing on Team and Enterprise tiers plus consumption-based run pricing, and Snowflake still bills separately for the compute that executes each dbt run. Native execution is generally cheaper for Snowflake-only stacks that mainly need scheduling, lineage, and docs. Weighing dbt Cloud against native Snowflake execution is easier with cost breakdowns like this on daily.dev."}},{"@type":"Question","name":"Why does my dbt schema get prefixed like PUBLIC_SILVER instead of just SILVER when running on Snowflake?","acceptedAnswer":{"@type":"Answer","text":"By default dbt prefixes custom schema names with the target schema, turning a configured SILVER schema into something like DEV_SILVER. Fixing this requires overriding the generate_schema_name macro in macros/generate_schema_name.sql to return the custom schema name directly instead of concatenating it with the target schema, which is the officially supported way to control exact schema names. Debugging dbt schema naming quirks on Snowflake gets faster with concrete fixes surfaced on daily.dev."}},{"@type":"Question","name":"How do I reference a local dbt package dependency when deploying a project as a Snowflake DBT PROJECT object?","acceptedAnswer":{"@type":"Answer","text":"A deployed Snowflake dbt project is a self-contained snapshot that cannot reach files outside its own folder, so pointing a local dependency at a sibling directory like ../some_other_project will not work. The fix is to copy the other project inside your own project folder, for example under local_packages/, and reference it with an inside path such as local: local_packages/some_other_project so everything deploys as one unit. Working through dbt packaging constraints on Snowflake is easier with walkthroughs like this via daily.dev."}}]}
```

