Migração de arquivos de definição de projeto da versão 1.x para 2.0¶
Para converter um arquivo de definição de projeto da versão 1.x para o formato da versão 2, faça o seguinte:
Vá ao diretório do projeto com o arquivo
snowflake.yml
da versão 1.x.Digite o comando
snow helpers v1-to-v2
.Se a conversão do arquivo da versão 1.x for bem-sucedida, o comando exibirá uma mensagem semelhante à seguinte:
cd <project-directory> snow helpers v1-to-v2
Project definition migrated to version 2.
Se o arquivo de definição do projeto já tiver sido atualizado para a versão 2, o comando exibirá a seguinte mensagem:
cd <project-directory> snow helpers v1-to-v2
Project definition is already at version 2.
Se você tentar converter um arquivo de projeto que contém um arquivo
snowflake.local.yml
, sem usar a opção--[no]-migrate-local-overrides
, o comando gerará um erro semelhante ao seguinte:
Se você tentar converter um arquivo de projeto com modelos, sem usar a opção
--accept-templates
, o comando gerará um erro semelhante ao seguinte:cd <project-directory> snow helpers v1-to-v2+- Error-------------------------------------------------------------------+ | snowflake.local.yml file detected, please specify | | --migrate-local-overrides to include or --no-migrate-local-overrides to | | exclude its values. | +--------------------------------------------------------------------------+Se você converter um arquivo de definição de projeto com modelos e usar a opção
--accept-templates
, o comando converterá o arquivo e exibirá uma mensagem de aviso semelhante à seguinte:cd <project-directory> snow helpers v1-to-v2WARNING snowflake.cli._plugins.workspace.commands:commands.py:60 Your V1 definition contains templates. We cannot guarantee the correctness of the migration. Project definition migrated to version 2
Conversão de projetos de Native Apps¶
Esta seção mostra um exemplo de uma conversão de V1 para V2 de um projeto Snowflake Native App, lista as alterações nos nomes das propriedade e oferece algumas dicas para ajudar na migração.
Exemplo de conversão de Snowflake Native App¶
Arquivo de projeto V1 |
Arquivo de projeto V2 |
---|---|
definition_version: 1
native_app:
name: myapp
source_stage: app_src.stage
artifacts:
- src: app/*
dest: ./
processors:
- native app setup
- name: templates
properties:
foo: bar
package:
role: pkg_role
distribution: external
application:
name: myapp_app
warehouse: app_wh
|
definition_version: 2
entities:
pkg:
type: application package
meta:
role: pkg_role
identifier: <% fn.concat_ids('myapp', '_pkg_', fn.sanitize_id(fn.get_username('unknown_user')) | lower) %>
manifest: app/manifest.yml
artifacts:
- src: app/*
dest: ./
processors:
- name: native app setup
- name: templates
properties:
foo: bar
stage: app_src.stage
app:
meta:
warehouse: app_wh
identifier: myapp_app
type: application
from:
target: pkg
|
Alterações de propriedade da V1 para V2 da definição do projeto do Native App¶
Propriedade de V1 |
Propriedade de V2 |
---|---|
|
Não há equivalente. Use uma variável de modelo para porta, se necessário. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dicas de migração¶
Ao migrar scripts de pacote do Snowflake Native App, o comando
v1-to-v2
os converte em ganchospackage post-deploy
e substitui{{package_name}}
no arquivo de script do pacote pela expressão de modelo equivalente.Ao migrar expressões de modelo existentes, as variáveis
ctx.native_app
,ctx.streamlit
ectx.snowpark
não são mais aceitas. O comandov1-to-v2
com expressões de modelo equivalentes que fazem referência ao nome da entidade específica. Por exemplo,ctx.native_app.package.name
poderia ser substituído porctx.entities.pkg.identifier
se o pacote fosse migrado para uma entidade chamadapkg
no arquivosnowflake.yml
.
Conversão de projetos Streamlit¶
Esta seção mostra um exemplo de uma conversão de V1 para V2 de um projeto Streamlit, lista as alterações nos nomes das propriedade e oferece algumas dicas para ajudar na migração.
Exemplo de conversão do Streamlit¶
Arquivo de projeto V1 |
Arquivo de projeto V2 |
---|---|
definition_version: 1
streamlit:
name: test_streamlit
stage: streamlit
query_warehouse: test_warehouse
main_file: "streamlit_app.py"
title: "My Fancy Streamlit"
|
definition_version: 2
entities:
test_streamlit:
identifier:
name: test_streamlit
type: streamlit
title: My Fancy Streamlit
query_warehouse: test_warehouse
main_file: streamlit_app.py
pages_dir: None
stage: streamlit
artifacts:
- streamlit_app.py
|
Alterações de propriedade da V1 para V2 das definição do projeto Streamlit¶
Propriedade de V1 |
Propriedade de V2 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dicas de migração do Streamlit¶
Nenhum.
Conversão de projetos Snowpark¶
Esta seção mostra um exemplo de uma conversão de V1 para V2 de um projeto Snowpark, lista as alterações nos nomes das propriedade e oferece algumas dicas para ajudar na migração.
Exemplo de conversão do Snowpark¶
Arquivo de projeto V1 |
Arquivo de projeto V2 |
---|---|
definition_version: 1
snowpark:
project_name: "my_snowpark_project"
stage_name: "dev_deployment"
src: "app/"
functions:
- name: func1
handler: "app.func1_handler"
signature:
- name: "a"
type: "string"
default: "default value"
- name: "b"
type: "variant"
returns: string
runtime: 3.10
procedures:
- name: procedureName
handler: "hello"
signature:
- name: "name"
type: "string"
returns: string
|
definition_version: 2
entities:
procedureName:
imports: []
external_access_integrations: []
secrets: {}
meta:
use_mixins:
- snowpark_shared
identifier:
name: procedureName
handler: hello
returns: string
signature:
- name: name
type: string
stage: dev_deployment
artifacts:
- src: app
dest: my_snowpark_project
type: procedure
execute_as_caller: false
func1:
imports: []
external_access_integrations: []
secrets: {}
meta:
use_mixins:
- snowpark_shared
identifier:
name: func1
handler: app.func1_handler
returns: string
signature:
- name: a
type: string
default: default value
- name: b
type: variant
runtime: '3.10'
stage: dev_deployment
artifacts:
- src: app
dest: my_snowpark_project
type: function
mixins:
snowpark_shared:
stage: dev_deployment
artifacts:
- src: app/
dest: my_snowpark_project
|
Alterações de propriedade da V1 para V2 das definição do projeto Snowpark¶
Propriedade de V1 |
Propriedade de V2 |
---|---|
|
|
|
|
|
|
|
|
|
|
Propriedade de V1 |
Propriedade de V2 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dicas de migração para Snowpark¶
Ao migrar projetos do Snowpark, cada função (da matriz
snowpark.functions
) ou procedimento (da matrizsnowpark.procedures
) é mapeado para uma entidade de nível superior.Todas as propriedades de projeto Snowpark de nível superior (por exemplo,
src
) agora são definidas para cada função e procedimento. Para reduzir a duplicação, a Snowflake recomenda que você declare ummixin
e o inclua em cada uma das entidades de função e procedimento migradas.