SnowDDL
  • 👋Introduction
  • ðŸšĐGetting started
  • 📋Main features
  • ðŸŠĪSnowDDL vs. Declarative DCM
  • In-depth guides
    • 👓Object identifiers
    • 📐Data types
    • ðŸ“ĶObject types
    • 🎭Role hierarchy
    • 🚧Permission model
    • ðŸ”ĶOther guides
      • Administration user
      • Integrations
      • Inbound shares
      • Object OWNERSHIP
      • Safe & unsafe DDL
      • Dependency management
      • Short hash explained
      • Env Prefix explained
      • Team workflow
      • Limitations & workarounds
      • Fivetran
      • Airbyte
      • Encrypt user passwords
      • Iceberg Tables
  • Basic usage (CLI + YAML)
    • ðŸ’ŧCLI interface
    • ðŸ“ĶYAML configs
      • ACCOUNT PARAMETER
      • ACCOUNT POLICY
      • AGGREGATION POLICY
      • ALERT
      • AUTHENTICATION POLICY
      • BUSINESS ROLE
      • DATABASE
      • DATABASE ROLE
      • DYNAMIC TABLE
      • EVENT TABLE
      • EXTERNAL ACCESS INTEGRATION
      • EXTERNAL FUNCTION
      • EXTERNAL TABLE
      • FILE FORMAT
      • FUNCTION
      • HYBRID TABLE
      • ICEBERG TABLE
      • MASKING POLICY
      • MATERIALIZED VIEW
      • NETWORK POLICY
      • NETWORK RULE
      • PERMISSION MODEL
      • PIPE
      • PLACEHOLDER
      • PROCEDURE
      • PROJECTION POLICY
      • RESOURCE MONITOR
      • ROW ACCESS POLICY
      • SCHEMA
      • SECRET
      • SEQUENCE
      • SHARE (outbound)
      • STAGE
      • STAGE FILE
      • STREAM
      • TABLE
      • TASK
      • TECHNICAL ROLE
      • USER
      • VIEW
      • WAREHOUSE
    • 🏷ïļYAML placeholders
    • 📎YAML tag !include
    • 🔐YAML tag !decrypt
  • Single DB
    • ðŸĶ€Overview
  • Advanced usage (Python)
    • ⚙ïļProgrammatic config
    • 🐍Architecture overview
      • ðŸ”ĩBlueprints
      • ðŸŸĢConfig
      • 🟠Parsers
      • ðŸŸĒResolvers
      • ðŸ”īEngine
    • 🏗ïļQuery builder & formatter
  • Breaking changes log
    • 0.45.0 - March 2025
    • 0.41.0 - January 2025
    • 0.37.0 - December 2024
    • 0.36.0 - November 2024
    • 0.33.0 - October 2024
    • 0.27.0 - May 2024
  • Links
    • GitHub repository
    • PyPI package
    • YouTube tutorials
    • Changelog
    • LinkedIn profile
Powered by GitBook
On this page
  1. In-depth guides
  2. Other guides

Team workflow

PreviousEnv Prefix explainedNextLimitations & workarounds

Last updated 3 years ago

This page will be updated with more detailed information soon. Please stay tuned!

The intended setup and workflow for data engineering team using SnowDDL is the following:

  1. Create a separate Snowflake account for development purposes. You may do it using and "organizations" feature.

  2. Create an initial SnowDDL configuration, keep it in Git or another version control system.

  3. When developer starts to work on new ticket, he or she creates a new branch, pulls config with latest changes and creates a separate "environment" in DEV Snowflake account using SnowDDL with . "Environment" can be destroyed and fully re-created at any moment.

  4. When developer finishes coding, he or she pushes the code and sends it for review. Reviewer validates changes in config and approves or declines it.

  5. All approved branches are merged into single "release" branch and automatically tested in a separate "environment" on the same DEV Snowflake account. This step is necessary to make sure that changes from multiple different branches are compatible with each other.

  6. If "release" branch test was successful, config can now be deployed to production. SnowDDL should apply config to PROD Snowflake account without .

  7. "Safe" changes are applied automatically. "Unsafe" changes are reviewed by release engineer once again and applied manually.

---

This workflow provides the robust, flexible and controlled release cycle. Developers have their own personal copy of DEV environment. Release branches are always tested before deployment. The process of rolling out config changes is as "safe" or "unsafe" as you want it to be.

ðŸ”Ķ
CREATE ACCOUNT
env prefix
env prefix