snow app version create¶
为应用程序包中定义的提供版本添加新补丁。如果版本不存在,则创建补丁为 0 的版本。
语法¶
snow app version create
<version>
--patch <patch>
--label <label>
--skip-git-check
--from-stage
--interactive / --no-interactive
--force
--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
实参¶
version
应用程序包中定义的版本。如果版本已经存在,则会在版本中添加一个自动递增的补丁。默认为
manifest.yml
文件中的指定版本。
选项¶
--patch INTEGER
您要为现有版本创建的补丁编号。如果未设置,默认为未定义,这意味着 Snowflake CLI 要么使用
manifest.yml
文件中指定的补丁,要么自动生成一个新的补丁编号。--label TEXT
显示给使用者的版本的标签。如果未设置,则使用
manifest.yml
文件中指定的版本标签。--skip-git-check
启用后,Snowflake CLI 会跳过检查项目是否在 Git 中有未跟踪或暂存的文件。默认:未设置。默认值:False。
--from-stage
启用后,Snowflake CLI 会从当前应用程序包暂存区创建版本,而无需先同步到该暂存区。默认值:False。
--interactive / --no-interactive
启用此选项后,即使标准输入和输出不是终端设备,也会显示提示。在交互式 shell 环境中默认值为 True,否则为 False。
--force
启用此选项后,命令会隐式批准出现的任何提示。如果未指定交互模式,并且想要执行可能具有破坏性的操作,则应启用此选项。默认为未设置。默认值:False。
--package-entity-id TEXT
当 definition_version 为 2 或更高时,要操作的包实体的 ID。
--app-entity-id TEXT
当 definition_version 为 2 或更高时,要操作的应用程序实体的 ID。
-p, --project TEXT
Snowflake 项目所在的路径。默认为当前工作目录。
--env TEXT
key=value 格式的字符串。替换用于模板的 env 部分的变量。默认值:[]。
--connection, -c, --environment TEXT
连接名称,如您在
config.toml
文件中所定义。默认值:default
。--host TEXT
连接的主机地址。替换为连接指定的值。
--port INTEGER
连接的端口。替换为连接指定的值。
--account, --accountname TEXT
分配给 Snowflake 账户的名称。替换为连接指定的值。
--user, --username TEXT
连接到 Snowflake 的用户名。替换为连接指定的值。
--password TEXT
Snowflake 密码。替换为连接指定的值。
--authenticator TEXT
Snowflake 身份验证器。替换为连接指定的值。
--private-key-file, --private-key-path TEXT
Snowflake 私钥文件路径。替换为连接指定的值。
--token-file-path TEXT
连接到 Snowflake 时应使用的带有 OAuth 令牌的文件路径。
--database, --dbname TEXT
要使用的数据库。替换为连接指定的值。
--schema, --schemaname TEXT
要使用的数据库架构。替换为连接指定的值。
--role, --rolename TEXT
要使用的角色。替换为连接指定的值。
--warehouse TEXT
要使用的仓库。替换为连接指定的值。
--temporary-connection, -x
使用用命令行参数定义的连接,而不是在配置中定义的连接。默认值:False。
--mfa-passcode TEXT
用于多重身份验证的令牌 (MFA)。
--enable-diag
运行 Python 连接器诊断测试。默认值:False。
--diag-log-path TEXT
诊断报告路径。默认:<temporary_directory>。
--diag-allowlist-path TEXT
可选允许列表的诊断报告路径。
--format [TABLE|JSON]
指定输出格式。默认:TABLE。
--verbose, -v
显示日志级别
info
及更高级别的日志条目。默认值:False。--debug
显示日志级别
debug
及更高级别的日志条目;调试日志包含其他信息。默认值:False。--silent
关闭到控制台的中间输出。默认值:False。
--help
显示此命令的帮助文本。
使用说明¶
备注
此命令不接受由角色或仓库替换您的 config.toml
文件。相反,请将它们添加到 snowflake.yml
或 snowflake.local.yml
中的 Native App 定义中。
该命令将创建一个应用程序包(如果不存在),其中包含一个版本和一个可选补丁。
如果未提供版本,则该命令将使用
manifest.yml
文件中指定的版本。如果manifest.yml
文件中不存在版本,该命令将引发错误。如果同时提供版本实参和
--patch
选项,且应用程序包不存在,则命令会出错。您只需提供版本实参,即可创建具有所需版本的新应用程序包。如果同时提供版本实参和
--patch
选项,且版本不存在,则命令会出错。您只需提供版本实参,即可创建一个带有预定补丁 0 的新版本。如果您在 Git 存储库中工作并执行此命令,该命令会检查工作副本的本地变更。如果发现本地变更,它会提示您确认是否可以继续。您可以使用
--skip-git-check
选项跳过此检查。如果应用程序包不存在,则由 Snowflake CLI 创建一个新包,并用特殊注释
GENERATED_BY_SNOWCLI
标记。它还会运行任何部署后的 hook,并将代码文件上传到暂存区。如果应用程序包已经存在,且其分发属性为
INTERNAL
,则命令会检查该包是否由 Snowflake CLI 创建。如果不是,命令会引发错误。如果应用程序包的分发是EXTERNAL
,则不执行此类检查。如果您正在使用的应用程序包的分发值与解析的项目定义中设置的值不同,则该命令会警告您,但会继续执行。
如果应用程序包的发布指令中引用了该版本,命令会提示您确认是否要在该版本上创建补丁。
如果版本已经存在,而您没有提供
--patch
选项,Native Apps Framework 会自动递增现有版本的补丁编号。否则,它会在您提供的版本下创建一个自定义补丁。--label
选项会为使用此命令创建的版本或补丁设置标签。如果指定,此值将替换为应用程序manifest.yml
文件中定义的version
指定的标签。如果指定命名版本,例如
snow app version create my_version
,则manifest.yml
文件中的version
字段将被忽略。
示例¶
这些示例假定您已对代码文件进行了必要的变更,并已将其添加到 snowflake.yml
或 snowflake.local.yml
文件中。
如果要创建一个应用程序包并添加 V1 版本,请使用以下命令:
snow app version create V1 --connection="dev"
您也可以使用上述命令在现有应用程序包上创建 V1 版本。
如果要使用自动递增功能向 V1 版本添加补丁,并调用交互模式,请使用以下命令:
snow app version create V1 --interactive --connection="dev"
如果想在 V1
版本中添加自定义补丁编号,并绕过交互模式(即使您在交互式 shell 中),请使用以下命令:
snow app version create V1 --patch 42 --force --connection="dev"
要根据暂存区的当前内容创建新版本,而无需先将文件同步到暂存区,请使用以下命令:
snow app version create V1 --from-stage --connection="dev"