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
  --validate / --no-validate
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-path <private_key_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
Copy

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.

--validate / --no-validate

When enabled, this option triggers validation of a deployed Snowflake Native App’s setup script SQL.

-p, --project TEXT

Path where the Snowflake Native App project resides. Defaults to current working directory.

--env TEXT

String in format of key=value. Overrides variables from env section used for templating.

--connection, -c, --environment TEXT

Name of the connection, as defined in your config.toml. Default: default.

--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-path TEXT

Snowflake private key path. Overrides the value specified for the connection.

--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.

--mfa-passcode TEXT

Token to use for multi-factor authentication (MFA).

--enable-diag

Run python connector diagnostic test.

--diag-log-path TEXT

Diagnostic report path.

--diag-allowlist-path TEXT

Diagnostic report path to optional allowlist.

--format [TABLE|JSON]

Specifies the output format.

--verbose, -v

Displays log entries for log levels info and higher.

--debug

Displays log entries for log levels debug and higher; debug logs contains additional information.

--silent

Turns off intermediate output to console.

--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 package scripts 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"
Copy