snow dcm plan¶
Shows what objects would be created, altered, or dropped by the deploy command, without applying any changes.
Syntax¶
Arguments¶
identifierOptional
Identifier of DCM Project. Example: MY_DB.MY_SCHEMA.MY_PROJECT. Supports fully qualified (recommended) or simple names. If unqualified, it defaults to the connection’s database and schema. Optional if
--targetordefault_targetis defined in the manifest.
Options¶
--from PATHLocal directory path containing DCM project files. Omit to use current directory.
--variable, -D TEXTVariables for the execution context; for example:
-D "<key>=<value>".--target TEXTTarget profile from
manifest.ymlto use. Usesdefault_targetif not specified.--save-outputSave command response and artifacts to local ‘out/’ directory. Default: False.
--deltaProcess only statements changed since the last
deploy, plus statements potentially impacted by those changes. 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.
--protocol TEXTProtocol to use for the connection, for example
https. 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.
--secondary-roles TEXTSecondary roles mode applied when the session starts. Supported values are
ALLandNONE; passNONEto run the session only with the primary role.--server-session-keep-aliveKeep the session active indefinitely, even if there is no activity from the user.
--format [TABLE|JSON|JSON_EXT|CSV]Specifies the output format. [env var: SNOWFLAKE_CLI_OUTPUT_FORMAT | config: cli.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. [env var: SNOWFLAKE_DECIMAL_PRECISION].
--helpDisplays the help text for this command.
Usage notes¶
The snow dcm plan command validates a DCM project object and simulates what would happen if the deploy command were executed, printing the computed changeset as a result. No Snowflake objects are created, altered, or dropped when you run this command.
Note
This command automatically uploads local source SQL files to a temporary stage in Snowflake so their content impacts the final result of the operation.
Use the --save-output option to save the plan results to a local out/plan.json file.
Use --delta during active development to get faster feedback on incremental changes. Because it skips unchanged definitions, it doesn’t detect changes that happened outside of DCM Projects on your account since the last deployment. Always run a full snow dcm plan before deploying.
Examples¶
-
Plan a DCM project object with the default options, where the project name is specified in the target identified by the
default_targetproperty in the manifest: -
Plan a DCM project where the project name is specified in the
DEVtarget in the manifest: -
Plan a DCM project object with an explicit fully qualified name:
-
Plan a DCM project using local files, where the project name is specified in the
DEVtarget in the manifest and set the value for thedb_namevariable: -
Plan a DCM project object and save the plan output locally:
-
Plan only the definitions that changed since the last deployment: