I’m trying to materialize downstream models as table, but whenever I do dbt run, it always tries to create data as views.
Hello everyone, newbie here. I’m trying to create a schema for my company, and my project has a folders structure like below:
models/
ywhite_ecom/
ecommerce/
1_raw/
2_staging/
3_intermediate/
4_final/
marketing/
1_raw/
2_staging/
3_intermediate/
4_final/
I want to materialize all models in 1_raw and 2_staging as views, and the others as table, so I specified this in dbt_project.yml. In the first time I do dbt run, it materializes correctly just as in dbt_project.yml, but after that whenever I do dbt run, the error always appears:
Trying to create view
ywhite_397503
.y
.int_customers
, but it currently exists as a table. Either dropywhite_397503
.ywhite_ecom
.int_customers
manually, or run dbt with--full-refresh
and dbt will drop it for you.
This is what I specified in dbt_project.yml:
models:
ywhite_project:
ywhite_ecom:
ecommerce:
1_raw:
+materialized: view
2_staging:
+materialized: view
3_intermediate:
+materialized: table
4_final:
+materialized: table
marketing:
1_raw:
+materialized: view
2_staging:
+materialized: view
3_intermediate:
+materialized: table
4_final:
+materialized: table
What I tried to fix it
I tried to modify the dbt_project.yml file, by include/exclude the ‘+’ symbol, or alter its structure like below, but it didn’t solve my problem, anyone has any idea to help me? Thank you very much in advance <3.
models:
ywhite_project:
materialized: table
ywhite_ecom:
ecommerce:
1_raw:
materialized: view
2_staging:
3_intermediate:
4_final: