snow dbt deploy¶
Upload local dbt project files and create or update a DBT project object on Snowflake. Examples: snow dbt deploy PROJECT snow dbt deploy PROJECT –source=/Users/jdoe/project –force
Syntax¶
snow dbt deploy
<name>
--source <source>
--profiles-dir <profiles_dir>
--force / --no-force
--default-target <default_target>
--unset-default-target
--external-access-integration <external_access_integrations>
--install-local-deps
--connection <connection>
--host <host>
--port <port>
--account <account>
--user <user>
--password <password>
--authenticator <authenticator>
--workload-identity-provider <workload_identity_provider>
--private-key-file <private_key_file>
--token <token>
--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>
--oauth-client-id <oauth_client_id>
--oauth-client-secret <oauth_client_secret>
--oauth-authorization-url <oauth_authorization_url>
--oauth-token-request-url <oauth_token_request_url>
--oauth-redirect-uri <oauth_redirect_uri>
--oauth-scope <oauth_scope>
--oauth-disable-pkce
--oauth-enable-refresh-tokens
--oauth-enable-single-use-refresh-tokens
--client-store-temporary-credential
--format <format>
--verbose
--debug
--silent
--enhanced-exit-codes
--decimal-precision <decimal_precision>
Arguments¶
nameIdentifier of the DBT Project; for example: my_pipeline.
Options¶
--source TEXTPath to directory containing dbt files to deploy. Defaults to current working directory.
--profiles-dir TEXTPath to directory containing profiles.yml. Defaults to directory provided in –source or current working directory.
--force / --no-forceOverwrites conflicting files in the project, if any. Default: False.
--default-target TEXTDefault target for the dbt project. Mutually exclusive with –unset-default-target.
--unset-default-targetUnset the default target for the dbt project. Mutually exclusive with –default-target. Default: False.
--external-access-integration TEXTExternal access integration to be used by the dbt object.
--install-local-depsInstalls local dependencies from project that don’t require external access. Default: False.
--connection, -c, --environment TEXTName of the connection, as defined in your
config.tomlfile. Default:default.--host TEXTHost address for the connection. Overrides the value specified for the connection.
--port INTEGERPort for the connection. Overrides the value specified for the connection.
--account, --accountname TEXTName assigned to your Snowflake account. Overrides the value specified for the connection.
--user, --username TEXTUsername to connect to Snowflake. Overrides the value specified for the connection.
--password TEXTSnowflake password. Overrides the value specified for the connection.
--authenticator TEXTSnowflake authenticator. Overrides the value specified for the connection.
--workload-identity-provider TEXTWorkload identity provider (AWS, AZURE, GCP, OIDC). Overrides the value specified for the connection.
--private-key-file, --private-key-path TEXTSnowflake private key file path. Overrides the value specified for the connection.
--token TEXTOAuth token to use when connecting to Snowflake.
--token-file-path TEXTPath to file with an OAuth token to use when connecting to Snowflake.
--database, --dbname TEXTDatabase to use. Overrides the value specified for the connection.
--schema, --schemaname TEXTDatabase schema to use. Overrides the value specified for the connection.
--role, --rolename TEXTRole to use. Overrides the value specified for the connection.
--warehouse TEXTWarehouse to use. Overrides the value specified for the connection.
--temporary-connection, -xUses a connection defined with command line parameters, instead of one defined in config. Default: False.
--mfa-passcode TEXTToken to use for multi-factor authentication (MFA).
--enable-diagWhether to generate a connection diagnostic report. Default: False.
--diag-log-path TEXTPath for the generated report. Defaults to system temporary directory. Default: <system_temporary_directory>.
--diag-allowlist-path TEXTPath to a JSON file that contains allowlist parameters.
--oauth-client-id TEXTValue of client id provided by the Identity Provider for Snowflake integration.
--oauth-client-secret TEXTValue of the client secret provided by the Identity Provider for Snowflake integration.
--oauth-authorization-url TEXTIdentity Provider endpoint supplying the authorization code to the driver.
--oauth-token-request-url TEXTIdentity Provider endpoint supplying the access tokens to the driver.
--oauth-redirect-uri TEXTURI to use for authorization code redirection.
--oauth-scope TEXTScope requested in the Identity Provider authorization request.
--oauth-disable-pkceDisables Proof Key for Code Exchange (PKCE). Default:
False.--oauth-enable-refresh-tokensEnables a silent re-authentication when the actual access token becomes outdated. Default:
False.--oauth-enable-single-use-refresh-tokensWhether to opt-in to single-use refresh token semantics. Default:
False.--client-store-temporary-credentialStore the temporary credential.
--format [TABLE|JSON|JSON_EXT|CSV]Specifies the output format. Default: TABLE.
--verbose, -vDisplays log entries for log levels
infoand higher. Default: False.--debugDisplays log entries for log levels
debugand higher; debug logs contain additional information. Default: False.--silentTurns off intermediate output to console. Default: False.
--enhanced-exit-codesDifferentiate exit error codes based on failure type. Default: False.
--decimal-precision INTEGERNumber of decimal places to display for decimal values. Uses Python’s default precision if not specified.
--helpDisplays the help text for this command.
Usage notes¶
The snow dbt deploy command uploads local files to a temporary stage and either creates a new object or updates an existing dbt project object by making a new version. A valid dbt project object must contain two files:
dbt_project.yml: A standard dbt configuration file that specifies the profile to use.profiles.yml: A dbt connection profile definition referenced indbt_project.yml.profiles.yamlmust define the database, role, schema, and type.<profile_name>: target: dev outputs: dev: database: <database_name> role: <role_name> schema: <schema_name> warehouse: <warehouse_name> type: snowflake
Examples¶
Deploy a dbt project named
jaffle_shop:snow dbt deploy jaffle_shop
Deploy a project named
jaffle_shopfrom a specified directory and overwrite the dbt project object if it already exists:snow dbt deploy jaffle_shop --force --source /path/to/dbt/directory --profiles-dir ~/.dbt/
Deploy a project named
jaffle_shopfrom a specified directory using a custom profiles directory and enabling external access integrations:snow dbt deploy jaffle_shop --force --source /path/to/dbt/directory --profiles-dir ~/.dbt/ --default-target dev --external-access-integration dbthub-integration --external-access-integration github-integration