Snowflake
Published 16 November 2022
Snowflake
Supported Versions
7.x
versions up to 7.16.x
versions up to 6.295.x
versions up to 5.14.x
versions up to 4.23.50
and later3.x
versions
Support Level
Compatible | ✓ |
---|---|
Certified | ✓ |
Guaranteed | ✓ Flyway Teams |
Support Level determines the degree of support available for this database (learn more).
Drivers
URL format | jdbc:snowflake://account.snowflakecomputing.com/?db=database&warehouse=warehouse&role=role
(optionally &schema=schema to specify current schema) |
---|---|
Ships with Flyway Command-line | Yes |
Maven Central coordinates | net.snowflake:snowflake-jdbc |
Supported versions | 3.6.23 and later |
Default Java class | net.snowflake.client.jdbc.SnowflakeDriver |
SQL Script Syntax
- Standard SQL syntax with statement delimiter ;
Compatibility
- DDL exported by the Snowflake web GUI can be used unchanged in a Flyway migration
- Any SQL script executed by Flyway, can be executed by the Snowflake web GUI (after the placeholders have been replaced)
- The Snowflake driver requires Java 8+. There is no support from Snowflake for Java 7 users.
Example
/* Single line comment */ CREATE TABLE test_data ( value VARCHAR(25) NOT NULL PRIMARY KEY ); /* Multi-line comment */ -- Sql-style comment -- Placeholder INSERT INTO ${tableName} (name) VALUES ('Mr. T');
Key-based Authentication
Snowflake JDBC supports key-based authentication. To use this, you will need to:
- ensure you are using at least v3.11 of the Snowflake JDBC driver (Flyway currently ships with this version)
- generate a public/private key pair
- assign the public key to the relevant Snowflake user account using
ALTER USER
- for complete instructions on these steps, refer to Snowflake's documentation
Finally, amend your JDBC connection string with the extra parameters to enable key-based auth and to refer to the
location of the private key:
authenticator=snowflake_jwt&private_key_file=<absolute-location-of-pem-file>
.