Usage

Aperçu

Cette page présente les cas d'utilisation courants de l'image de mise à jour de WorkflowGen. Cette image est disponible en tant que conteneurs Linux et Windows et est conçue pour être un conteneur à usage unique qui s'exécute jusqu'à la fin. Vous devez le supprimer une fois que vous en avez terminé.

Étapes de mise à jour

La première chose à savoir sur le conteneur de mise à jour est la procédure à suivre pour mettre à jour votre installation. Chaque étape, à l'exception de l'acquisition du package de mise à jour, est effectuée au sein d'une transaction, ce qui signifie que toute erreur annulera toutes les modifications précédemment apportées. Dans le cas de fichiers, ils seront restaurés à partir d'une sauvegarde effectuée avant l'opération.

Étape 1 : Obtenez le package de mise à jour

Selon que le conteneur de mise à jour est en ligne ou hors ligne, cette étape obtient le package de mise à jour du paramètre ToVersion. Si le conteneur est en ligne, il essaiera d'abord d'obtenir le package de mise à jour à partir du volume updatepackages. S'il n'est pas trouvé, le conteneur le téléchargera à partir du référentiel GitHub workflowgen-releases. Si le conteneur est hors ligne, il essaiera d'obtenir le package de mise à jour à partir du volume updatepackages. Si ce n'est pas le cas, il écrira un message d'erreur et quittera.

Vous devez fournir vos propres packages de mise à jour WorkflowGen lorsque vous utilisez le conteneur hors ligne. Par défaut, lorsque vous montez le volume des packages de mise à jour, le conteneur attend la structure de fichiers suivante :

updatepackages/
7.14.0/
update.zip
7.15.0/
update.zip

Comme vous pouvez le voir, la structure attendue n'a que des dossiers au niveau supérieur avec la version exacte de WorkflowGen. À l'intérieur d'eux se trouve une archive appelée update.zip, qui est le package de mise à jour officiel de WorkflowGen. Vous n'avez besoin que du package de mise à jour ToVersion lorsque vous exécutez le conteneur.

Facultativement, si le package de mise à jour se trouve ailleurs dans le volume, vous pouvez spécifier le nom de fichier et le chemin d'accès dans la variable d'environnement WFGEN_UPGRADE_UPDATE_PACKAGE_FILE_NAME. Par exemple, vous pouvez spécifier la valeur 7.15.2.zip si ToVersion est 7.15.2 et la structure du répertoire est plate. Vous pouvez également spécifier la valeur workflowgen/updates/7.15.2/update.zip si le package de mise à jour se trouve plus loin dans l'arborescence de répertoires.

Pour plus d'informations sur les variables d'environnement, voir la page Configuration de cette section.

Étape 2 : Fusionnez les nouveaux fichiers App_Data dans le dossierApp_Data existant

Avant cette opération, une sauvegarde sera effectuée de tous les dossiers et fichiers à l'intérieur du montage de liaison et copiée temporairement dans un chemin à l'intérieur du conteneur. À tout moment, les dossiers Files, LogFiles et Ws sont ignorés, y compris pendant l'opération de fusion. Le conteneur fusionnera ensuite les fichiers App_Data du package de mise à jour dans votre dossier App_Data que vous avez lié au conteneur via le montage de liaison de données. La fusion est uniquement additive, ce qui signifie que tout fichier qui n'existe pas dans le package de mise à jour sera conservé tel quel.

Étape 3 : Fusionnez les nouveaux fichiers wfapps dans le dossier wfapps existant

De la même manière que l'opération de fusion App_Data, le dossier wfapps sera également fusionné avec vos wfapps fournis dans le montage de liaison de données. Cette opération est également additive uniquement.

Étape 4 : Migrez la base de données si nécessaire

Le conteneur de mise à niveau appliquera ensuite tous les fichiers de migration SQL trouvés dans le package de mise à jour qui satisfont à la condition fv<xtvfv < x \le tvxx est la version du fichier de migration SQL, fvfv est la valeur FromVersion et tvtv est la valeur ToVersion.

Exemple en ligne

Cet exemple s'agit de l'utilisation la plus simple du conteneur de mise à jour. Par exemple, si vous souhaitez mettre à jour WorkflowGen de la version 7.14.6 vers 7.18.2 et que le conteneur a accès à Internet, vous l'appellerez comme ceci :

PowerShell
Bash
PowerShell
# "wfgdata" groups appdata and wfapps folders
docker container run -i --name wfgen-upgrade `
--env 'WFGEN_DATABASE_CONNECTION_STRING=Server=someserver,1433;...' `
--mount "type=bind,src=C:\path\to\your\wfgdata,dst=/mnt/data" `
advantys/workflowgen-upgrade:latest-ubuntu-18.04 `
-FromVersion 7.14.6 -ToVersion 7.18.2
# When has terminated, you can analyse the container or review the logs.
# Then, remove the container.
docker container rm wfgen-upgrade
Bash
# "wfgdata" groups appdata and wfapps folders
docker container run -i --name wfgen-upgrade \
--env 'WFGEN_DATABASE_CONNECTION_STRING=Server=someserver,1433;...' \
--mount type=bind,src=C:\path\to\your\wfgdata,dst=/mnt/data \
advantys/workflowgen-upgrade:latest-ubuntu-18.04 \
-FromVersion 7.14.6 -ToVersion 7.18.2
# When has terminated, you can analyse the container or review the logs.
# Then, remove the container.
docker container rm wfgen-upgrade

Dans cet exemple, le conteneur télécharge le package de mise à jour à partir de la version 7.18.2, fusionne les fichiers App_Data et wfapps dans /mnt/data/appdata et /mnt/data/wfapps respectivement et applique toutes les migrations de base de données à l'aide des scripts SQL dans le package de mise à jour.

Vous pouvez ignorer les fichiers et dossiers avec des variables d'environnement lorsque le conteneur fusionne des fichiers. Pour plus d'informations, voir la page Configuration de cette section.

Exemple hors ligne

Si le conteneur n'a pas accès à Internet, vous pouvez transmettre le package de mise à jour WorkflowGen vous-même. Assurez-vous qu'il s'agit de la version exacte de l'argument ToVersion passé au conteneur. Vous appelleriez le conteneur comme ceci :

PowerShell
Bash
PowerShell
# "wfgdata" groups appdata and wfapps folders
docker container run -i --name wfgen-upgrade `
--env 'WFGEN_DATABASE_CONNECTION_STRING=Server=someserver,1433;...' `
--mount "type=bind,src=C:\path\to\your\wfgdata,dst=/mnt/data" `
--mount "type=bind,src=C:\path\to\packages,dst=/mnt/updatepackages" `
advantys/workflowgen-upgrade:latest-ubuntu-18.04 `
-FromVersion 7.14.6 -ToVersion 7.18.2 -Offline
Bash
# "wfgdata" groups appdata and wfapps folders
docker container run -i --name wfgen-upgrade \
--env 'WFGEN_DATABASE_CONNECTION_STRING=Server=someserver,1433;...' \
--mount type=bind,src=C:\path\to\your\wfgdata,dst=/mnt/data \
--mount type=bind,src=C:\path\to\packages,dst=/mnt/updatepackages \
advantys/workflowgen-upgrade:latest-ubuntu-18.04 \
-FromVersion 7.14.6 -ToVersion 7.18.2 -Offline

Dans cet exemple, il y a deux changements par rapport à l'exemple en ligne. Tout d'abord, un montage de liaison a été ajouté pour l'approvisionnement des packages de mise à jour. Le conteneur y cherchera d'abord un package de mise à jour. Deuxièmement, l'indicateur -Offline a été transmis au conteneur. Cet indicateur indique au conteneur de ne pas essayer de télécharger le package de mise à jour s'il ne trouve pas le package dans le montage de liaison. En d'autres termes, le conteneur ne tentera aucun accès lié au réseau.

Le chemin et le nom du package de mise à jour peuvent être modifiés avec des variables d'environnement. Pour plus d'informations, voir la page Configuration de cette section.