snow git execute¶
Execute immediate all files from the repository path. Files can be filtered with a glob-like pattern, e.g. @my_repo/branches/main/*.sql
, @my_repo/branches/main/dev/*
. Only files with .sql
or .py
extension will be executed.
Syntax¶
snow git execute
<repository_path>
--on-error <on_error>
--variable <variables>
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--private-key-file <private_key_file>
--token-file-path <token_file_path>
--database <database>
--schema <schema>
--role <role>
--warehouse <warehouse>
--temporary-connection
--mfa-passcode <mfa_passcode>
--enable-diag
--diag-log-path <diag_log_path>
--diag-allowlist-path <diag_allowlist_path>
--format <format>
--verbose
--debug
--silent
Arguments¶
repository_path
Path to git repository stage with scope provided. Path to the repository root must end with ‘/’. For example: @my_repo/branches/main/.
Options¶
--on-error [break|continue]
What to do when an error occurs. Defaults to break. Default: break.
--variable, -D TEXT
Variables for the execution context; for example:
-D "<key>=<value>"
. For SQL files, variables are used to expand the template, and any unknown variable will cause an error (consider embedding quoting in the file).For Python files, variables are used to update the os.environ dictionary. Provided keys are capitalized to adhere to best practices. In case of SQL files string values must be quoted in''
(consider embedding quoting in the file).--connection, -c, --environment TEXT
Name of the connection, as defined in your
config.toml
file. Default:default
.--host TEXT
Host address for the connection. Overrides the value specified for the connection.
--port INTEGER
Port for the connection. Overrides the value specified for the connection.
--account, --accountname TEXT
Name assigned to your Snowflake account. Overrides the value specified for the connection.
--user, --username TEXT
Username to connect to Snowflake. Overrides the value specified for the connection.
--password TEXT
Snowflake password. Overrides the value specified for the connection.
--authenticator TEXT
Snowflake authenticator. Overrides the value specified for the connection.
--private-key-file, --private-key-path TEXT
Snowflake private key file path. Overrides the value specified for the connection.
--token-file-path TEXT
Path to file with an OAuth token that should be used when connecting to Snowflake.
--database, --dbname TEXT
Database to use. Overrides the value specified for the connection.
--schema, --schemaname TEXT
Database schema to use. Overrides the value specified for the connection.
--role, --rolename TEXT
Role to use. Overrides the value specified for the connection.
--warehouse TEXT
Warehouse to use. Overrides the value specified for the connection.
--temporary-connection, -x
Uses connection defined with command line parameters, instead of one defined in config. Default: False.
--mfa-passcode TEXT
Token to use for multi-factor authentication (MFA).
--enable-diag
Run Python connector diagnostic test. Default: False.
--diag-log-path TEXT
Diagnostic report path. Default: <temporary_directory>.
--diag-allowlist-path TEXT
Diagnostic report path to optional allowlist.
--format [TABLE|JSON]
Specifies the output format. Default: TABLE.
--verbose, -v
Displays log entries for log levels
info
and higher. Default: False.--debug
Displays log entries for log levels
debug
and higher; debug logs contain additional information. Default: False.--silent
Turns off intermediate output to console. Default: False.
--help
Displays the help text for this command.
Usage notes¶
You can use glob-like patterns to filter the files, such as @my_repo/branches/main/*.sql
and @my_repo/branches/main/dev/*
. The command only executes files with a .sql
extension.
When using Jinja templates for the SQL files, you can pass template variables using -D
or (--variable)
option, such as -D "<key>=<value>"
. You must enclose string values in single quotes (''
).
Examples¶
The following example shows how to execute SQL commands in all files within the project
directory that match a regular expression.
snow git execute "@git_test/branches/main/projects/script*.sql"
SUCCESS - git_test/branches/main/projects/script1.sql
SUCCESS - git_test/branches/main/projects/script2.sql
SUCCESS - git_test/branches/main/projects/script3.sql
+---------------------------------------------------------------+
| File | Status | Error |
|---------------------------------------------+---------+-------|
| git_test/branches/main/projects/script1.sql | SUCCESS | None |
| git_test/branches/main/projects/script2.sql | SUCCESS | None |
| git_test/branches/main/projects/script3.sql | SUCCESS | None |
+---------------------------------------------------------------+