Snowflake-Labs / schemachange

A Database Change Management tool for Snowflake
Apache License 2.0
511 stars 226 forks source link

What's the best practice for managing Dynamic tables through schemachange, versioned or repeatable? #262

Open mayur0207 opened 3 months ago

mayur0207 commented 3 months ago

What are you trying to accomplish? We are using dynamic tables heavily. Decided to use schemachange for Gitlab CI pipeline. I've structured the folders, but there's not much documentation about how to handle dynamic tables, should they be treated as versioned objects similar to simple SQL tables or repeatable objects like views?

What options have you tried so far ? For now, I've structured them as versioned objects, but obvious concern is if there's any change to implementation logic of DT, need to create new version script for DT But if I put them as repeatable, then problem is data may get deleted on next CI pipeline run. Please provide guidance and recommended approach, it'll be helpful for others if this is included in the documentation of schemachange as well

@jamesweakley, @jeremiahhansen

jamesweakley commented 3 months ago

Hi @mayur0207 , Based on my limited use of dynamic tables so far, changes to their implementation logic (the body of the query), are designed to be a drop+create action, regardless of which change management tool you're using. So for that reason, I think they're a good fit for versioned objects and I don't really see any other way.