Advanced capabilities for Snowflake
Published 05 August 2026
EDITION: ENTERPRISE
We are currently working on Flyway's advanced capabilities for Snowflake, which will let you compare, govern, and deploy schema changes for Snowflake using the same state and migrations workflows you already use for other database types. It connects to Snowflake over JDBC and works with Snowflake Data Warehouse and Snowflake Postgres.
Advanced capabilities include
- Understanding changes made to a development schema
- Scripting those changes out so each object can be versioned controlled giving you an object-level history to see who, changed what, when and why
- Optionally generating versioned and undo migrations scripts, which account for dependencies
- Reporting on changes as part of your CI/CD pipeline so you can understand how many objects will be touched at a glance and drill into more details with a side-by-side diff of the changes
- Check for drift to ensure environments reflect what is in version control to catch issues sooner before releasing to production
Coming soon
| JDBC URL format | jdbc:snowflake://account.snowflakecomputing.com/?db=database&warehouse=warehouse&role=role&JDBC_QUERY_RESULT_FORMAT=JSON(optionally &schema=schema to specify current schema) |
Get in touch with our Development Team to learn more.
The Preview for Snowflake Postgres aligns with the advanced capabilities we support for the PostgreSQL database.
Plans for Snowflake object support in initial Preview:
- Table
- Use `IF NOT EXISTS`
- Columns
- ADD, DROP, ALTER Columns (Part of ALTER TABLE)
- Type change
- Support changes to nullability: `ALTER COLUMN <col> NOT NULL/DROP NOT NULL`
- Views
- Body
- Dependency ordering. same schema bare-name
- Use `CREATE OR REPLACE VIEW ... COPY GRANTS`
- Create Snowflake Dependency Calculator for Views
- Use `CREATE OR REPLACE`
- Functions
- Body. We will Support SQL language only (Snowflake also supports JavaScript, Python, Java, Scala)
- RETURNS scalar type
- Support Object Identity/Overloading. A Function's identity is its name + parameter signature, not just name. Two functions can share a name with Object identity overloading different parameter counts/types and are genuinely different objects. This was solved for Postgres: `my_func(integer, varchar)` as the last `ObjectName` part.
- Create Snowflake Dependency Calculator - Functions
- Use `IF NOT EXISTS` in scripts
- Stored Procedures
- Body. We will Support SQL language only (Snowflake also supports JavaScript, Python, Java, Scala)
- Parameters - basic (comments are not supported)
- Default Values
- RETURNS scalar type
- Support Object Identity/Overloading. A procedure's identity is its name + parameter signature, not just name. Two procedures can share a name with Object identity overloading different parameter counts/types and are genuinely different objects. This was solved for Postgres: `my_proc(integer, varchar)` as the last `ObjectName` part
- Dependency ordering same schema bare-name
- Snowflake Dependency Calculator - Stored Proceedures
- Use `CREATE OR REPLACE`
- Snowflake Lexer
- double quotes for identifiers
- single quotes for strings
- backtick is the identifier quote
- `$$...$$` is an alternative string delimiter, commonly used to wrap multi-line procedure/function bodies
- Warnings for data loss
- Drop table
- Drop columns
Potential plans for future additions:
NOTE: If any of the following are blocking your use of the Preview or you feel something is missing, please let us know so we can prioritize these as we work through this list.
- Tasks
- Table
- Temporary tables / Transient tables
- Primary keys / Foreign keys
- Check constraints
- CLUSTER BY
- Comments
- Tags
- Owner
- Renames
- Columns
- Renames
- Computed e.g. <col_type> AS (<expr>)
- Defaults (SET/UNSET)
- Comments
- Mask policies
- Tags
- Projection policies
- Table rebuilds
- Schema
- ALTER changes
- Comments
- Other tables: Apache Iceberg table, Hybrid table, External table, Dynamic table
- Streams
- Sequences
- Materialized views
- Masking policies
- Row access policies
- Row Access policies can be attached to (multiple) tables
- ALTER TABLE ... ADD ROW ACCESS POLICY policy_name ON (columns)
- Static data
- Warnings
- Column not null or default
- Check constraint may fail
- Table rebuild
- Rebuild/create losing properties that aren't supported e.g. if CLUSTER BY is set on a table and we rebuild it, it will be lost
- Permissions
- Support for Database properties
- Snowflake Dependency Calculator for Primary Keys, Foreign Keys
- Snowflake Cyclic Dependency Resolver
- Network IP Addresses
- Create a new project in Flyway Desktop and select PostgreSQL as the database type
- On the Schema model page, click Start here to link your development database
- Copy your Host name from your Snowflake Postgres account:
- Copy your Host name from your Snowflake Postgres account:
- Use this as your Host, enter your Database, Schemas, Username and Password information in the connection dialog:
- Click Continue and optionally specify Filters and Static data, before clicking Finish.
- The initial state of your schema objects have now been saved to disk.
- Click Show details for more information.
- Clicking Close and Continue returns you to the Schema model page. You can see the current state of all the objects in the Schema Model by clicking on them in the right for details
- Now, start making changes directly to your development database. Refresh the Flyway Desktop Schema Model to see your changes and save them to disk when you're ready.
The Preview for Snowflake Postgres aligns with the advanced capabilities we already support for the PostgreSQL database.
Next steps
Turning the Snowflake Preview off - Coming soon
Advanced Snowflake support will be on by default. To turn it off:
- Flyway Desktop: go to Settings > Preview features and turn the Snowflake option off.
Giving feedback
We'd love to hear how you get on with the Preview. Tell us what works, what doesn't, and what you'd like to see next.
Please complete our quick survey or email us with your feedback.
This documentation contains proprietary information and is protected by copyright law.
Copyright © 2026 Red Gate Software Limited. All rights reserved









