Version, correctifs et mise à niveau d’une application¶
Cette rubrique décrit comment ajouter des versions et des correctifs à une application créée à l’aide du Native Apps Framework. Cette rubrique décrit également comment utiliser un schéma versionné pour garantir une mise à niveau transparente des fichiers d’application et du script d’installation de votre application.
À propos des versions, des correctifs et des mises à niveau¶
Le Native Framework fournit des fonctionnalités qui vous permettent de mettre à jour votre application ou de corriger des problèmes. Il fournit également un moyen de mettre à niveau de manière transparente une application après qu’elle a été installée sur un compte consommateur.
À propos des versions et des correctifs¶
En général, utilisez les nouvelles versions pour introduire de nouvelles fonctions ou des changements de comportement pour une application. Le processus de mise à niveau (et de retour en arrière) d’une version majeure vers une autre version majeure garantit qu’aucun code ne peut être exécuté à partir d’une version antérieure. Cela signifie que le script d’installation ne doit être compatible qu’avec la version majeure immédiatement antérieure.
Les correctifs sont considérés comme des versions complètes de l’application, ce qui signifie qu’ils sont définis par un script d’installation exactement de la même manière qu’une version majeure. Toutefois, contrairement aux mises à niveau de la version complète, il n’existe aucune restriction quant à l’ordre dans lequel le fournisseur peut les installer ni quant au nombre de correctifs pouvant avoir un code en cours d’exécution en même temps.
Plusieurs correctifs peuvent être ajoutés à une version donnée. Contrairement aux versions, rien ne limite l’installation d’un correctif sur la version actuellement installée. Cela signifie qu’il est possible d’exécuter simultanément du code provenant de plusieurs correctifs différents lorsqu’ils sont installés rapidement de façon successive. Cela signifie également qu’une nouvelle version doit être compatible avec tous les correctifs possibles en cours d’exécution de la version précédente.
Création de versions et de correctifs¶
Les informations relatives à la version d’une application sont spécifiées dans le paquet d’application.
Ajout d’une version à un paquet d’application¶
L’exemple suivant montre comment utiliser la commande ALTER APPLICATION PACKAGE pour ajouter une version à un paquet d’application.
ALTER APPLICATION PACKAGE MyAppPackage
ADD VERSION v1_0
USING '@dev_stage/v1_0'
LABEL = 'MyApp Version 1.0';
Dans cet exemple, v1_0
est un identificateur de la version qui n’est pas visible par les consommateurs lorsqu’ils installent l’application. Le consommateur voit les informations relatives à la version, telles que définies dans la clause LABEL.
Seules deux versions d’une application peuvent exister en même temps. Par exemple, si vous définissez v1_0 et v1_1 dans une application, vous devez supprimer v1_0 pour créer v1_2. Cependant, vous pouvez avoir plusieurs correctifs pour une seule version.
Vous pouvez définir le nom de la version et la balise dans le fichier manifest.yml
ou les spécifier directement avec la commande ALTER APPLICATION PACKAGE. Si vous les définissez dans le fichier manifest.yml
ainsi qu’avec la commande SQL, les valeurs spécifiées dans la commande SQL ont la priorité sur les valeurs spécifiées dans le fichier manifest.yml
.
Ajout d’un correctif à un paquet d’application¶
En plus de créer des versions pour une application, vous pouvez également créer des correctifs pour une version spécifique. Comme les versions, les correctifs d’application ont également leurs propres fichiers d’application.
Pour créer un nouveau correctif pour un paquet d’application, utilisez la clause ADD PATCH FOR VERSION de la commande ALTER APPLICATION PACKAGE, comme le montre l’exemple suivant :
ALTER APPLICATION PACKAGE MyAppPackage ADD PATCH
FOR VERSION V1_0
USING '@dev_stage/v1_0_p1;
Lorsque vous ajoutez la première version à un paquet d’application, le correctif numéro 0 est attribué à cette version. Au fur et à mesure que vous ajoutez des correctifs supplémentaires, Snowflake incrémente le numéro du correctif de 1.
Note
Vous ne pouvez pas spécifier vous-même le numéro de correctif. Snowflake gère les numéros de correctifs en interne.
Vue des versions et des correctifs d’un paquet d’application¶
En tant que fournisseur, vous pouvez voir les versions et les correctifs définis pour une application en exécutant la commande SHOW VERSIONS sur le paquet d’application.
La commande suivante affiche les versions et les correctifs qui ont été définis pour un paquet d’application nommé HelloSnowflakePackage
:
SHOW VERSIONS IN APPLICATION PACKAGE HelloSnowflakePackage;
Suppression d’une version d’un paquet d’application¶
Pour supprimer une version d’un paquet d’application, utilisez la clause DROP VERSION de la commande ALTER APPLICATION PACKAGE comme indiqué dans l’exemple suivant :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
DROP VERSION v1_0;
Note
La suppression d’une version actuellement utilisée par une application installée peut rendre cette version inutilisable jusqu’à ce que l’application installée soit mise à jour.
Cette commande n’est pas terminée tant que toutes les applications n’ont pas été mises à niveau vers une nouvelle version. Soyez prudent lorsque vous supprimez une version en cours d’utilisation dans un compte consommateur.
Définition de la directive de version pour un paquet d’application¶
Après avoir ajouté une version à un paquet d’application, vous pouvez spécifier une directive de version pour le paquet d’application. Les directives de version déterminent la version de l’application qui est disponible pour un consommateur lorsqu’il installe l’application.
À propos des directives de version¶
Vous pouvez définir une directive de version par défaut pour un paquet d’application. La directive de version par défaut spécifie la version applicable à tous les consommateurs lors de l’installation d’une application. Par exemple, si vous avez créé une V1 et une V2 d’une application, le fait de définir la directive de version par défaut sur V2 garantit que lorsqu’un consommateur installe l’application, il installe la version V2.
Vous pouvez également ajouter une directive de version personnalisée à un paquet d’application. Les directives de version personnalisées vous permettent de spécifier la version d’une application que des comptes Snowflake spécifiques peuvent installer.
Par exemple, si vous créez les V2 et V3 d’une application, vous pouvez assigner V2 comme version par défaut et créer une directive de version personnalisée pour partager V3 avec des comptes spécifiques. Un cas courant pour les directives de version personnalisées est le partage d’une application avec le compte consommateur que vous utilisez pour les tests.
Note
Si vous spécifiez à la fois une directive de version par défaut et une directive de version personnalisée, la directive de version personnalisée est toujours prioritaire. Dans l’exemple ci-dessus, les comptes consommateurs spécifiés dans la directive de version personnalisée ne pourront installer que la V3 de l’application.
Vous devez définir une directive de version pour un paquet d’application afin de pouvoir effectuer les opérations suivantes :
Installez une application dans le compte consommateur.
Créez une annonce privée pour un paquet d’application.
Privilèges nécessaires pour définir la directive de version¶
La spécification des directives de version nécessite le privilège MANAGE RELEASES ou la propriété du paquet d’application.
GRANT MANAGE RELEASES ON APPLICATION PACKAGE HelloSnowflakePackage
TO ROLE release_mgr;
Définition de la directive de version par défaut pour un paquet d’application¶
Utilisez la commande ALTER APPLICATION PACKAGE avec SET DEFAULT RELEASE DIRECTIVE pour définir la directive de version par défaut, comme indiqué dans l’exemple suivant :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET DEFAULT RELEASE DIRECTIVE
VERSION = v1_0
PATCH = 2;
Pour mettre à jour la directive de version par défaut d’un paquet d’application, exécutez à nouveau la commande ALTER APPLICATION PACKAGE avec SET DEFAULT RELEASE DIRECTIVE, en spécifiant de nouvelles valeurs pour VERSION et PATCH.
Ajout d’une directive de version personnalisée à un paquet d’application¶
Pour ajouter une directive de version personnalisée, utilisez la commande ALTER APPLICATION PACKAGE avec SET RELEASE DIRECTIVE. Utilisez la clause ACCOUNTS pour spécifier les comptes auxquels s’applique cette directive de version. Par exemple :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
SET RELEASE DIRECTIVE HelloSnowflakePackage_Custom
ACCOUNTS = (CONSUMER_ORG.CONSUMER_ACCOUNT)
VERSION = v1_0
PATCH = 0;
Après avoir ajouté une directive de version personnalisée à un paquet d’application, vous pouvez mettre à jour la version et le correctif pour la directive de version en exécutant le ALTER APPLICATION PACKAGE avec MODIFY RELEASE DIRECTIVE et en spécifiant des valeurs mises à jour pour VERSION et PATCH.
En revanche, vous ne pouvez pas modifier les comptes associés à la directive de version. Pour modifier l’organisation et le compte associés à une directive de version, procédez comme suit :
Supprimez la directive de version du paquet d’application en exécutant la commande ALTER APPLICATION PACKAGE avec UNSET RELEASE DIRECTIVE.
Ajoutez à nouveau la directive de version au paquet d’application en exécutant la commande ALTER APPLICATION PACKAGE avec SET RELEASE DIRECTIVE et en utilisant la clause ACCOUNTS pour spécifier la liste des comptes.
Mise à jour d’une directive de version personnalisée dans un paquet d’application¶
Pour mettre à jour la version ou le correctif d’une directive de version personnalisée, utilisez la commande ALTER APPLICATION PACKAGE avec MODIFY RELEASE DIRECTIVE comme indiqué dans l’exemple suivant :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
MODIFY RELEASE DIRECTIVE HelloSnowflakePackage_Custom
VERSION = v1_0
PATCH = 0;
Suppression d’une directive de version personnalisée d’un paquet d’application¶
Pour supprimer une directive de version personnalisée d’un paquet d’application, utilisez la commande ALTER APPLICATION PACKAGE avec UNSET RELEASE DIRECTIVE comme indiqué dans l’exemple suivant :
ALTER APPLICATION PACKAGE HelloSnowflakePackage
UNSET RELEASE DIRECTIVE HelloSnowflakePackage_Custom;
Versions et correctifs¶
Lors de l’installation d’une application à partir d’un paquet d’application en mode développement, la version et le correctif sont explicitement spécifiés. Cependant, lorsque l’application est installée normalement, par exemple :
CREATE APPLICATION HelloSnowflake
FROM APPLICATION PACKAGE HelloSnowflakePackage
La directive de version détermine la version qui est installée lors de l’exécution de cette commande.