where the heck in dbt Cloud are these default database/schema values configured?
The database where the object is created is defined by the database configured at the environment level in dbt cloud.
why does dbt want to prefix the default schema value to what I originally specified in my config statement?
By default, all dbt models are built in the schema specified in your environment (dbt cloud) or profile's target (dbt Core). If you define a custom schema in dbt_projects.yml
file, config()
macro, or properties.yml
file etc. , dbt concatenates the default schema with the custom one. detailed explanation
Reason is :
Each dbt user has their own target schema for development (refer to Managing Environments). If dbt ignored the target schema and only used the model's custom schema, every dbt user would create models in the same schema and would overwrite each other's work.
By combining the target schema and the custom schema, dbt ensures that objects it creates in your data warehouse don't collide with one another. source
If you don't like this default behavior, you can override it using generate_schema_name macro.