Snowflake-Labs/schemachange

A Database Change Management tool for Snowflake

View on GitHub ↗Jump to charts ↓

Snowflake-Labs/schemachange has 650+ stars and 300+ forks on GitHub, is written in Python, and was last pushed on Oct 1, 2026. Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 14 minutes ago
Added to GitGenius on January 5th, 2025
Created on August 27th, 2018
Open Issues & Pull Requests: 38 (+0)
GitHub issues: Enabled
Number of forks: 300
Total Stargazers: 678 (+0)
Total Subscribers: 26 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 119.6 days
Mean response time: 318.0 days
90th percentile: 958.8 days
Tracked items: 101

Maintainer activity

2 people did triage or write work on this repository in the last 12 months.

Counts unlabeled, assigned, unassigned, milestoned, demilestoned, locked, unlocked over the last 12 months. These are issue and pull request events that require triage or write permission. Commits and code review are not counted. labeled and renamed are excluded because GitHub issue forms record the issue author as the actor. Figures from October 18, 2026. This count is not comparable across projects: each project's automation decides which of these events a person emits. How this is counted.

How this project is maintained

96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "target: 4.2.0" is answered fastest, typically in about 4 days, while "enhancement" waits about 6 months. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 26
New in 7 days: 2
Closed in 7 days: 0
Avg open age: 615 days
Stale 30+ days: 24
Stale 90+ days: 22

Recent activity

Opened in 7 days: 2
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (41)
  • question (37)
  • bug (35)
  • Workaround (28)
  • target: 4.2.0 (15)
  • status: needs-triage (9)
  • help wanted (8)
  • priority: medium (5)

Most active issues this week

Sign in to see which issues are moving.
Sign in

Detailed Description

schemachange is a Python-based database change management tool specifically designed for Snowflake that enables teams to manage schema changes through version control and CI/CD pipelines. The tool was formerly known as snowchange and has been renamed to schemachange. It implements an imperative-style approach to database change management, drawing inspiration from the Flyway database migration tool, and allows database changes to be approved and deployed through modern software delivery practices.

The tool supports three primary types of change scripts. Versioned scripts follow a naming convention starting with 'V' followed by a version number, two underscores, a description, and a .sql or .sql.jinja extension, such as V1.1.1__first_change.sql. Repeatable scripts begin with 'R__' and are applied each time schemachange runs if the file has changed, making them suitable for maintaining stored procedures, functions, and view definitions. Always scripts start with 'A__' and execute with every run, useful for environment setup tasks. Additionally, the tool supports CLI migration scripts in YAML format with extensions like .cli.yml or .cli.yml.jinja, allowing execution of command-line tools such as the Snowflake CLI as part of the deployment process.

schemachange provides flexible configuration options through multiple methods including environment variables, CLI arguments, and a connections.toml file for local development. The tool supports various authentication mechanisms including password authentication, external OAuth, browser-based authentication, Okta integration, and private key authentication. Users can store change history in a configurable location, with the default being a METADATA database, and the tool automatically creates the necessary schema and tracking table on first run if specified.

The repository shows active maintenance and community engagement.

The tool includes several advanced features such as Jinja templating engine support for dynamic script generation, secrets filtering to prevent sensitive information from being logged, and support for using variables within scripts. schemachange offers multiple commands including deploy for executing changes, render for previewing templated output, and verify for validation. The tool handles deployment scenarios including out-of-order execution and provides comprehensive documentation on required Snowflake privileges, troubleshooting, and integration with DevOps workflows. As a community-developed tool rather than an official Snowflake offering, schemachange comes with no formal support or warranty but serves as a critical enabler for database DevOps practices when combined with version control systems and CI/CD tools.