Criação de versões e patches para um aplicativo¶
Este tópico descreve como adicionar versões e patches a um pacote de aplicativo.
Para obter informações gerais sobre versões e patches e como eles são usados para atualizar e fazer a atualização de um aplicativo, consulte Sobre versões e patches de aplicativos.
Adição de uma versão ou patch a um pacote de aplicativo¶
A versão e os patches de um aplicativo são definidos no pacote do aplicativo.
Depois de adicionar uma versão ou um patch a um pacote do aplicativo, os provedores podem testar as alterações localmente, criando um objeto de aplicativo com base na versão ou no patch.
Consulte Criação de um objeto de aplicativo de uma versão ou nível de patch para obter mais informações.
Privilégios necessários para adicionar ou remover versões e patches¶
Para especificar uma versão ou patch para um pacote de aplicativo, você deve ter um dos seguintes privilégios concedidos no pacote de aplicativo para sua função:
OWNERSHIP
MANAGE VERSIONS
Por exemplo, para conceder o privilégio MANAGE VERSION no pacote de aplicativo à função release_mgr
, use o comando GRANT <privilégios> conforme mostrado no exemplo a seguir:
GRANT MANAGE VERSIONS ON APPLICATION PACKAGE hello_snowflake_package
TO ROLE release_mgr;
Adição de uma versão a um pacote do aplicativo¶
Para adicionar uma versão ao pacote do aplicativo usando SQL, execute o comando ALTER APPLICATION PACKAGE:
ALTER APPLICATION PACKAGE MyAppPackage
ADD VERSION v1
USING '@dev_stage/v1'
LABEL = 'MyApp Version 1.0';
Neste exemplo, v1
é um identificador da versão. Esse identificador não é visível para os consumidores quando eles instalam o aplicativo. O consumidor vê as informações da versão conforme definido na cláusula LABEL.
Cuidado
Apenas duas versões de um aplicativo podem existir ao mesmo tempo. Consulte Sobre versões e patches de aplicativos para obter mais informações.
Você pode definir o nome da versão e o rótulo no arquivo manifest.yml
, ou especifique-os diretamente com o comando ALTER APPLICATION PACKAGE. Se você os definir no arquivo manifest.yml
, bem como com o comando SQL, os valores especificados no comando SQL tem precedência sobre os valores especificados no arquivo manifest.yml
.
Adição de um patch a um pacote do aplicativo¶
Além de criar versões para um aplicativo, você também pode criar patches para uma versão específica. Assim como as versões, os patches de aplicativo também têm seus próprios arquivos de aplicativo.
Para criar um novo patch para um pacote de aplicativo, use a cláusula ADD PATCH FOR VERSION do comando ALTER APPLICATION PACKAGE … VERSION, conforme o exemplo a seguir:
ALTER APPLICATION PACKAGE MyAppPackage
ADD PATCH FOR VERSION V1_0
USING '@dev_stage/v1_0_p1;
No exemplo, nenhum número de patch é fornecido para a cláusula ADD PATCH FOR VERSION V1_0. Neste caso, o Snowflake incrementa automaticamente o número do patch em 1.
Para criar um novo patch para um aplicativo com número de patch personalizado, forneça o número de patch na cláusula ADD PATCH FOR VERSION do comando ALTER APPLICATION PACKAGE … VERSION, conforme mostrado no exemplo a seguir:
ALTER APPLICATION PACKAGE MyAppPackage
ADD PATCH 3
FOR VERSION V1_0
USING '@dev_stage/v1_p1;
Visualização das versões e patches em um pacote do aplicativo¶
Como provedor, você pode visualizar as versões e patches definidos para um aplicativo executando o comando SHOW VERSIONS no pacote de aplicativo.
O comando a seguir exibe as versões e patches que foram definidos para um pacote de aplicativo chamado hello_snowflake_package
:
SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
Remoção de uma versão de um pacote de aplicativo¶
Para remover uma versão de um pacote de aplicativo, você deve verificar se não há diretrizes de versão apontando atualmente para a versão que você deseja remover.
Consulte Como ver as diretrizes de versão de um pacote do aplicativo para obter informações sobre como visualizar as diretrizes de versão.
Para remover uma versão de um pacote de aplicativo, use a cláusula DROP VERSION do comando ALTER APPLICATION PACKAGE como mostrado no exemplo a seguir:
ALTER APPLICATION PACKAGE hello_snowflake_package
DROP VERSION v1_0;
Depois de executar este comando, a versão não será descartada até que todas as instâncias instaladas do aplicativo sejam descartadas. Para verificar o status do comando drop, use SHOW VERSIONS conforme mostrado no exemplo a seguir:
SHOW VERSIONS IN APPLICATION PACKAGE hello_snowflake_package;
A coluna dropped_on
lista o carimbo de data/hora em que o descarte foi iniciado.
Nota
A versão descartada só aparece na saída deste comando enquanto o status for DROPPED
. Quando todas as instâncias instaladas do aplicativo forem descartadas, a versão descartada não aparecerá mais.
Quando uma versão é descartada, os consumidores não podem mais instalar novas instâncias dessa versão do aplicativo.
Dependendo de como o aplicativo é publicado para os consumidores, pode levar diferentes períodos para que a versão seja descartada:
Se o pacote de aplicativo não tiver sido publicado para os consumidores, a versão será descartada imediatamente.
Se o pacote de aplicativo tiver sido publicado como uma listagem pública ou privada em uma única região, a versão será descartada imediatamente.
Se o pacote de aplicativo for publicado como produto de dados de uma listagem compartilhada na mesma região que o pacote de aplicativo, a versão será descartada em algumas horas.
Se o pacote de aplicativo for publicado como produto de dados de uma listagem usando o preenchimento automático entre nuvens, poderá levar mais tempo para que a versão seja descartada em todas as regiões.