Snowflake schema diff — free to use

Snowflake Schema Diff.
Generate migrations.
Zero setup.

Paste two GET_DDL('TABLE', 'schema.table') outputs or DESCRIBE TABLE results. Spot every VARIANT column, stream, task, and semi-structured change instantly. Get ready-to-run migration scripts for Snowflake — all in your browser.

No account required. No data leaves your device.

Built for cloud data warehouse workflows

SchemaLens understands Snowflake-specific syntax that generic diff tools miss.

❄️

Semi-Structured Data Comparison

Compares VARIANT, OBJECT, and ARRAY column definitions, including nested JSON paths and automatic type inference changes.

📊

Streams & Tasks

Detects changes in STREAM and TASK definitions that depend on table schemas, preventing broken CDC and scheduled pipelines.

🔑

Constraints & Clustering Keys

Primary keys, unique constraints, foreign keys, and clustering key changes — all compared semantically across schema versions.

📁

External Stage Schemas

Compares external table definitions for S3, Azure Blob, and GCS stages, including file format and copy options.

Standard SQL Parser

SchemaLens parses Snowflake Standard SQL dialect with full accuracy — every VARCHAR, NUMBER, TIMESTAMP_NTZ, and GEOGRAPHY type.

🔒

Privacy First

Your schema never leaves the browser. Compare production Snowflake schemas safely without uploading sensitive table structures to a third-party server.

How it works

1

Export your schemas

Run SELECT GET_DDL('TABLE', 'schema.table') or DESCRIBE TABLE schema.table on both databases.

2

Paste into SchemaLens

Copy the SQL into the two editor panes. Select the appropriate dialect for accurate parsing.

3

Review the diff

See added tables, dropped columns, VARIANT changes, stream modifications, and clustering key differences highlighted in color.

4

Copy the migration

Export ALTER TABLE scripts, save as Markdown, PDF, or raw SQL. Run in staging, then production.

Snowflake migration examples

SchemaLens generates production-ready migration scripts for every change it detects.

Add a VARIANT column for JSON data

ALTER TABLE analytics.events
  ADD COLUMN payload VARIANT;

Change a column type with precision

ALTER TABLE analytics.orders
  ALTER COLUMN total TYPE NUMBER(18, 4);

Add a clustering key

ALTER TABLE analytics.events
  CLUSTER BY (event_date, user_id);

Add a foreign key

ALTER TABLE analytics.orders
  ADD CONSTRAINT fk_orders_user
  FOREIGN KEY (user_id) REFERENCES analytics.users(id);

Related guides

Ready to diff your Snowflake schemas?

Join thousands of developers who use SchemaLens to catch schema changes before they hit production.

Start Comparing Free

Free for up to 10 tables. Pro starts at $12/mo.