Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
serveurs:installation:web-srv:geonature-taxref-upgrade [2024/06/18 10:19] – [Détail utilisation du script "flask taxref migrate-to-vXX"] jpmilcent | serveurs:installation:web-srv:geonature-taxref-upgrade [2024/08/12 13:43] (Version actuelle) – [Installation de la dernière version de TaxHub] jpmilcent |
---|
Présentation des étapes pour migrer TaxRef malgré l'utilisation en production d'une version ancienne de TaxHub (v1.9.4). Réaliser d'abord toutes ces étapes en local avant de les reproduire en production. | Présentation des étapes pour migrer TaxRef malgré l'utilisation en production d'une version ancienne de TaxHub (v1.9.4). Réaliser d'abord toutes ces étapes en local avant de les reproduire en production. |
| |
<color #ed1c24>**Pré-requis**</color> : la base de données ne doit pas avoir évolué... Rechercher les éventuelles évolutions dans [[https://github.com/PnX-SI/TaxHub/releases | la liste des releases]]. | <color #ed1c24>**Pré-requis**</color> : la base de données ne doit pas avoir évolué... Sinon, il faut vérifier que les modifications sont compatibles avec la branche ''feat/sinp''. Le code SQL de migration peut être ajouté au script SQL ''pre_detection.sql'' (voir ci-dessous). Rechercher les éventuelles évolutions dans [[https://github.com/PnX-SI/TaxHub/releases | la liste des releases]]. |
| |
**Migration de TaxRef en version** : | **Migration de TaxRef en version** : |
* Se connecter sur l'hôte ''web-srv'' | * Se connecter sur l'hôte ''web-srv'' |
* Se placer dans le dossier ''~/www/'' : <code bash>cd ~/www/</code> | * Se placer dans le dossier ''~/www/'' : <code bash>cd ~/www/</code> |
* Cloner le dépôt Taxhub : <code bash>git clone https://github.com/PnX-SI/TaxHub.git taxhub.taxref_v16</code> | * Cloner le dépôt Taxhub : <code bash>git clone https://github.com/PnX-SI/TaxHub.git taxhub.taxref_v17</code> |
* Mettre à jour les sous-module si utilisation en local en mode "dev" : <code bash>cd ~/www/taxhub.taxref_v16 ; git submodule init; git submodule update</code> | * Mettre à jour les sous-module si utilisation en local en mode "dev" : <code bash>cd ~/www/taxhub.taxref_v17 ; git submodule init; git submodule update</code> |
* Se placer dans le dossier cloné : <code bash>cd ~/www/taxhub.taxref_v16</code> | * Se placer dans le dossier cloné : <code bash>cd ~/www/taxhub.taxref_v17</code> |
* Copier les fichiers de configuration : <code bash> | * Copier les fichiers de configuration : <code bash> |
cp settings.ini.sample settings.ini | cp settings.ini.sample settings.ini |
* Lancer l'installation du ''venv'' : <code bash>./install_app.sh</code> | * Lancer l'installation du ''venv'' : <code bash>./install_app.sh</code> |
* Activer le ''venv'' : <code bash>source venv/bin/activate</code> | * Activer le ''venv'' : <code bash>source venv/bin/activate</code> |
* Lancer l'import de TaxRef : <code bash>flask taxref migrate-to-v16 import-taxref-v16</code> | * Lancer l'import de TaxRef : <code bash>flask taxref migrate-to-v17 import-taxref-v17</code> |
* Pas certain que cela soit utile si on utilise le scripts SQL ''pre_detection.sql'' mais on peut lancer la commande suivante pour tester d'éventuel changement réalisé dans la base : <code bash>flask taxref migrate-to-v16 test-changes-detection</code> | * Pas certain que cela soit utile si on utilise le scripts SQL ''pre_detection.sql'' mais on peut lancer la commande suivante pour tester d'éventuel changement réalisé dans la base : <code bash>flask taxref migrate-to-v17 test-changes-detection</code> |
* Lors de la réalisation des tests en local, préparer une nouveau dossier de version de TaxRef sur le dépôt ''sinp-<region>-data'' : | * Lors de la réalisation des tests en local, préparer une nouveau dossier de version de TaxRef sur le dépôt ''sinp-<region>-data'' : |
* Voir : [[https://github.com/cbn-alpin/sinp-paca-data/tree/main/taxref|PACA]] ou [[https://github.com/cbn-alpin/sinp-aura-data/tree/main/taxref|AURA]] | * Voir : [[https://github.com/cbn-alpin/sinp-paca-data/tree/main/taxref|PACA]] ou [[https://github.com/cbn-alpin/sinp-aura-data/tree/main/taxref|AURA]] |
* Copier les fichiers csv générés par le script précédent dans le dossier ''taxref/v16/csv/'' du dépôt. | * Copier les fichiers csv générés par le script précédent dans le dossier ''taxref/v17/csv/'' du dépôt. |
* Créer les scripts SQL qui permettront la migration dans le dossier ''taxref/v16/sql/''. Se baser sur la version précédente de TaxRef pour avoir des exemples de script SQL qu'il faudra adapté aux informations fournies dans les fichiers CSV. | * Créer les scripts SQL qui permettront la migration dans le dossier ''taxref/v17/sql/''. Se baser sur la version précédente de TaxRef pour avoir des exemples de script SQL qu'il faudra adapté aux informations fournies dans les fichiers CSV. |
* Lors de la mise en production, récupérer les fichiers SQL permettant la migration :<code bash> | * Lors de la mise en production, récupérer les fichiers SQL permettant la migration :<code bash> |
wget https://raw.githubusercontent.com/cbn-alpin/sinp-<region>-data/main/taxref/v<version>/sql/pre_detection.sql | wget https://raw.githubusercontent.com/cbn-alpin/sinp-<region>-data/main/taxref/v<version>/sql/pre_detection.sql |
wget https://raw.githubusercontent.com/cbn-alpin/sinp-<region>-data/main/taxref/v<version>/sql/post_detection.sql | wget https://raw.githubusercontent.com/cbn-alpin/sinp-<region>-data/main/taxref/v<version>/sql/post_detection.sql |
</code> | </code> |
* Lancer la migration de TaxRef : <code bash>flask taxref migrate-to-v16 apply-changes --script_predetection ./pre_detection.sql --script_postdetection ./post_detection.sql</code> | * Lancer la migration de TaxRef : <code bash>flask taxref migrate-to-v17 apply-changes --script_predetection ./pre_detection.sql --script_postdetection ./post_detection.sql</code> |
* **NOTE** : pour une raison inconnue, dans le cas du SINP AURA, il m'a fallu lancer à 2 reprises cette commande. Après l'import, 14 conflits sont indiqués. Après le premier lancement, il reste 8 conflits. Après le second, cela tombe 0 et la migration s'effectue correctement... | * **NOTE** : pour une raison inconnue, dans le cas du SINP AURA, il m'a fallu lancer à 2 reprises cette commande. Après l'import, 14 conflits sont indiqués. Après le premier lancement, il reste 8 conflits. Après le second, cela tombe 0 et la migration s'effectue correctement... |
* Vérifier que la nouvelle version de TaxRef a bien été migré correctement ! Vérifier qu'un cd_nom disparu dans la v16 n'est plus présent dans votre table ''taxonomie.taxref'' et qu'un nouveau cd_nom ajouté à partir de la v16 s'y trouve bien. | * Vérifier que la nouvelle version de TaxRef a bien été migré correctement ! Vérifier qu'un cd_nom disparu dans la v17 n'est plus présent dans votre table ''taxonomie.taxref'' et qu'un nouveau cd_nom ajouté à partir de la v17 s'y trouve bien. |
* Lier à nouveau les statuts de protection aux zones géographiques : <code bash>flask taxref link-bdc-statut-to-areas</code> | * <color /#fff200>Si nécessaire (avant la v17)</color>, lier à nouveau les statuts de protection aux zones géographiques : <code bash>flask taxref link-bdc-statut-to-areas</code> |
* Désactiver à nouveau les textes de la BDC Statut qui ne vous sont pas nécessaire à votre installation : | * Désactiver à nouveau les textes de la BDC Statut qui ne vous sont pas nécessaire à votre installation : |
* SINP PACA : <code bash>psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/04_disable_status_text.sql</code> | * SINP PACA : <code bash>psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/04_disable_status_text.sql</code> |
* SINP AURA : <code bash>psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/003_disable_status_text.sql</code> | * SINP AURA : <code bash>psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/003_disable_status_text.sql</code> |
* Ajouter les éventuels nouveaux textes de cette nouvelle version de Taxref à ne pas prendre en compte à votre script ''04_disable_status_text.sql''. | * Ajouter les éventuels nouveaux textes de cette nouvelle version de Taxref à ne pas prendre en compte à votre script ''04_disable_status_text.sql''. |
| * <color /#fff200>Vérifier que la nouvelle version de la BDC Statuts a bien été migrée correctement !</color> Il faut s'assure que les textes avec le champ ''enable'' à ''true'' dans la table ''taxonomie.bdc_statut_text'' correspondent bien à la France métropolitaine, à la région ou aux département qui concernent le SINP. Il peut s'avérer nécessaire de relancer le script SQL de sélection des textes du SINP (dépôt ''sinp-<region>-data/db-geonature/data/sql/..._disable_status_text.sql'') pour activer les nouveaux textes. |
| * Si pour une raison ou une autre, il est nécessaire de recharger la BDC statut, il est possible de suivre la démarche définie dans [[https://github.com/PnX-SI/TaxHub/issues/501|le ticket #501 de TaxHub]]. Il faudra juste modifier l'URL de téléchargement des fichiers zip et la version de TaxRef si nécessaire. |
===== Détail utilisation du script "flask taxref migrate-to-vXX" ===== | ===== Détail utilisation du script "flask taxref migrate-to-vXX" ===== |
* Ressource : https://github.com/PnX-SI/TaxHub/tree/master/apptax/taxonomie/commands/migrate_taxref | * Ressource : https://github.com/PnX-SI/TaxHub/tree/master/apptax/taxonomie/commands/migrate_taxref |
| * Voir aussi le ticket corrigeant des problèmes dans la migration et la détection des conflits : https://github.com/PnX-SI/TaxHub/issues/527 |
* Lancer le script : ''flask taxref migrate-to-v17 import-taxref-v17'' | * Lancer le script : ''flask taxref migrate-to-v17 import-taxref-v17'' |
* La récupération de toutes les informations permettant la migration définitive vers la dernière version de TaxRef nécessite de lancer plusieurs fois ce script. Des fichiers de sortie différents seront ainsi générés. | * La récupération de toutes les informations permettant la migration définitive vers la dernière version de TaxRef nécessite de lancer plusieurs fois ce script. Des fichiers de sortie différents seront ainsi générés. |