Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please avoid destroying Snowflake database if not empty #2713

Open
hongbo-miao opened this issue Apr 16, 2024 · 2 comments
Open

Please avoid destroying Snowflake database if not empty #2713

hongbo-miao opened this issue Apr 16, 2024 · 2 comments
Labels
category:other feature-request Used to mark issues with provider's missing functionalities

Comments

@hongbo-miao
Copy link

hongbo-miao commented Apr 16, 2024

Terraform CLI and Provider Versions

  • Terraform: v1.7.4
  • Provider: v0.88.0

Use Cases or Problem Statement

Currently use Terraform to manage Snowflake database has high risk.

Proposal

It would be great to support avoiding destroy Snowflake database when either one condition meet

  • if has schemas that are not PUBLIC inside
  • if has tables in PUBLIC schema

Thanks!

For instance, AWS Terraform modules will prevent the destruction of a resource if there are any elements nested within it. For example, if there are IAM users within an IAM group, the destruction process will fail with an error:

│ Error: deleting IAM Group (MyIAMGroup): DeleteConflict: Cannot delete entity, must remove users from group first.
│ 	status code: 409, request id: 3f99ee73-64d3-4b26-8d82-affddbb7a0d5

Likewise, attempting to destroy a S3 bucket containing files will also result in failure.

How much impact is this issue causing?

High

Additional Information

@hongbo-miao hongbo-miao added the feature-request Used to mark issues with provider's missing functionalities label Apr 16, 2024
@hongbo-miao hongbo-miao changed the title Please avoid destroy snowflake database if not empty Please avoid destroying snowflake database if not empty Apr 16, 2024
@hongbo-miao hongbo-miao changed the title Please avoid destroying snowflake database if not empty Please avoid destroying Snowflake database if not empty Apr 16, 2024
@sfc-gh-asawicki
Copy link
Collaborator

Hey @hongbo-miao. Thanks for the suggestion.

We may consider it an opt-in mechanism, but it will be a low priority for the time being. We want to be aligned with Snowflake SQL API, and no errors/warnings are returned in a situation like this. Furthermore, in cases when something is deleted by accident (if using the terraform, you have to approve the terraform apply explicitly), there is still the time-travel mechanism: https://docs.snowflake.com/en/user-guide/data-time-travel that can be used to bring back db, schema, and table to life.

@hongbo-miao
Copy link
Author

hongbo-miao commented Apr 16, 2024

Thank you @sfc-gh-asawicki !

I've added additional workaround solutions to my original post. However, since we're dealing with the entire company's databases and schemas. These two features are quite essential for us to lower risk effectively. Thank you! ☺️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:other feature-request Used to mark issues with provider's missing functionalities
Projects
None yet
Development

No branches or pull requests

3 participants