snow app deploy¶
Creates an application package in your Snowflake account and syncs the local changes to the stage without creating or updating the application. Running this command with no arguments at all, as in snow app deploy
, is a shorthand for snow app deploy --prune --recursive
.
Syntax¶
snow app deploy
<paths>
--prune / --no-prune
--recursive / --no-recursive
--interactive / --no-interactive
--force
--validate / --no-validate
--package-entity-id <package_entity_id>
--app-entity-id <app_entity_id>
--project <project_definition>
--env <env_overrides>
--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¶
paths...
Paths, relative to the the project root, of files or directories you want to upload to a stage. If a file is specified, it must match one of the artifacts src pattern entries in snowflake.yml. If a directory is specified, it will be searched for subfolders or files to deploy based on artifacts src pattern entries. If unspecified, the command syncs all local changes to the stage.
Options¶
--prune / --no-prune
Whether to delete specified files from the stage if they don’t exist locally. If set, the command deletes files that exist in the stage, but not in the local filesystem. This option cannot be used when paths are specified.
--recursive, -r / --no-recursive
Whether to traverse and deploy files from subdirectories. If set, the command deploys all files and subdirectories; otherwise, only files in the current directory are deployed.
--interactive / --no-interactive
When enabled, this option displays prompts even if the standard input and output are not terminal devices. Defaults to True in an interactive shell environment, and False otherwise.
--force
When enabled, this option causes the command to implicitly approve any prompts that arise. You should enable this option if interactive mode is not specified and if you want perform potentially destructive actions. Defaults to unset. Default: False.
--validate / --no-validate
When enabled, this option triggers validation of a deployed Snowflake Native App’s setup script SQL. Default: True.
--package-entity-id TEXT
The ID of the package entity on which to operate when definition_version is 2 or higher.
--app-entity-id TEXT
The ID of the application entity on which to operate when definition_version is 2 or higher.
-p, --project TEXT
Path where Snowflake project resides. Defaults to current working directory.
--env TEXT
String in format of key=value. Overrides variables from env section used for templates. Default: [].
--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¶
The snow app deploy
command creates an application package in your Snowflake account, uploads code files to its stage, validates the setup script SQL, and runs any post-deploy hooks that are defined in snowflake.yml
. Unlike the snow app run command, this command does not install or upgrade an application object.
Examples¶
If you want to create an application package using staged files, you can execute:
cd my_app_project
my_app_project_build_script.sh
snow app deploy --connection="dev"