Working in a multi-tenant environment, I need to deploy one project to many clients. Each client has their own Snowflake accounts (meaning different profiles with their specific urls and credentials). Right now, deployment is manual; developers running the same scripts in each snowflake account. Is there a way to do this in dbt automatically?
My guess is having all profiles in the profiles.yml file, but then how to loop over these different profiles in the profile field in dbt_project.yml file?
Sounds like something you would solve whatever tool you use to schedule your dbt jobs.
For example, if you use dbt Cloud, you could have different environments targeting different Snowflake accounts (with different credentials). Each job you create would use a specific environment and when they run they would update each environment individually.
On the other hand, if you use another scheduling/orchestration tool, you could write code to regenerate your dbt_project.yml with the correct profileā¦
tl;dr: I think this is something that is not solved with dbt itself but from whatever tool you are using to schedule/run your dbt jobs.
Hope it helps