skillfed

schemachange

A Database Change Management tool for Snowflake

schemachange v4.3.3 506.1K downloads/30d#6,289 on PyPI671
Permissive license Apache-2.0 Active released

What it is and what it does

schemachange is a database change management tool designed specifically for Snowflake. It lets you version-control your schema changes as SQL scripts organized in folders, then deploy them through a CI/CD pipeline using an imperative approach—meaning you write the exact SQL changes you want applied, rather than declaring the desired end state. The tool tracks what has been deployed in a change history table within Snowflake, preventing duplicate runs and maintaining an audit trail.

You organize migration scripts with a Flyway-like naming convention (V1.0.0__description.sql for versioned changes, R__description.sql for repeatable scripts). schemachange reads these scripts, optionally renders them through Jinja2 templating, and executes them against your Snowflake account. It supports multiple authentication methods (password, JWT, OAuth, browser-based), configuration via environment variables or a connections.toml file, and integrates naturally into DevOps workflows.

Use it for:

  • Automating Snowflake schema deployments in CI/CD pipelines with version control and approval workflows.
  • Managing repeatable objects like stored procedures and functions that need to be redeployed consistently across environments.
  • Templating migration scripts with Jinja2 to handle environment-specific configurations (warehouse names, roles, etc.).
  • Tracking all schema changes in Snowflake's change history table for compliance and audit purposes.
  • Coordinating multi-team database changes through a single source of truth in version control.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

schemachange is a Python tool that manages Snowflake database schema changes through versioned SQL migration scripts, following an imperative database change management approach similar to Flyway.

Yes. schemachange is actively maintained, has no known vulnerabilities, uses a permissive Apache-2.0 license, and solves a real problem for teams deploying to Snowflake. Low install friction and straightforward CLI make it accessible for both small projects and enterprise CI/CD integration. The caveat is that it is community-developed, not an official Snowflake product, so support depends on the community.

Install

schemachange on PyPI

pip

pip install schemachange

uv

uv add schemachange

poetry

poetry add schemachange

Installing schemachange

Before you install

Installation is straightforward with low friction—five runtime dependencies including snowflake-connector-python, colorama, jinja2, pyyaml, and structlog. The project is actively maintained with a recent release and 671 repository stars, indicating stable community adoption.

License in practice

Licensed under Apache-2.0 (permissive), allowing free use, modification, and distribution in both open-source and commercial projects with minimal restrictions.

Quickstart

pip install schemachange

# Create migrations/V1.0.0__initial_setup.sql with your SQL
# Set Snowflake credentials via environment variables or connections.toml

schemachange deploy -f migrations

Requires Python 3.10 or later; Snowflake account credentials and appropriate database privileges must be configured before deployment.

Verify before relying

  • Whether the tool supports rollback or only forward migrations.
  • Performance characteristics when managing very large numbers of migration scripts.
  • Detailed audit trail and change history retention policies in Snowflake.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — colorama, jinja2, pyyaml, snowflake-connector-python, structlog
Maintenance actively maintained — 116 days since the last release
Last repo commit
First released
Downloads 506,098/month — #6,289 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: schemachange-4.3.3-py3-none-any.whl

License :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

snowflake schema migrationdatabase change managementsnowflake version controlsql migration toolsnowflake devopsimperative database migrationsnowflake ci/cd deployment
snowflakedevopsmigration

More Database packages