Logo

Autoschematic

GitHub
Cluster Login

Is Terraform a Bad Fit for Snowflake?

Terraform works best when the infrastructure it manages is created exclusively through Terraform itself. Snowflake environments often evolve differently.

Many orgs already have existing, manually-created objects: users, warehouses, roles, grants, and integrations. Attempting to bring these into Terraform requires importing every resource and maintaining Terraform state. Even small discrepancies between the real Snowflake environment and Terraform’s state can cause failures during plan or apply.

Another challenge is that Snowflake permissions are highly relational. Roles grant privileges on objects that may themselves depend on other objects. Representing these relationships in Terraform can become verbose and difficult to reason about.

This friction also appears in day-to-day workflows. Engineers who simply want to create a schema or adjust a role must modify Terraform code, run plans, and coordinate state changes. For teams without a mature Terraform workflow, this often slows down development rather than improving reliability.

These issues lead many teams down one of two paths: they either accept configuration drift and stop relying on Terraform, or they spend significant time and effort maintaining Terraform state instead of focusing on Snowflake itself.

Autoschematic was designed from the ground up to avoid these problems, and Snowflake is a first-class supported connector for Autoschematic.

Up next: A New Approach: Declarative Snowflake with Autoschematic