serveurs:installation:web-srv:geonature-taxref-upgrade

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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/07/02 15:15] – [Installation de la dernière version de TaxHub] jpmilcentserveurs:installation:web-srv:geonature-taxref-upgrade [2025/07/03 13:32] (Version actuelle) – [Mise à jour de TaxRef] jpmilcent
Ligne 3: Ligne 3:
 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** :
 +  * v18 depuis v17 : création d'une commande pour TaxHub < v2.0 ; 3 nouvelles colonnes TaxRef ignorées.
   * v17 depuis v16 : évolution de la base impactant la migration entre la v1.9.4 et la v1.14.0 => nécessite de créer la table ''taxonomie.t_meta_taxref'' dans script SQL de pré-détection.   * v17 depuis v16 : évolution de la base impactant la migration entre la v1.9.4 et la v1.14.0 => nécessite de créer la table ''taxonomie.t_meta_taxref'' dans script SQL de pré-détection.
   * v16 depuis v15 : pas d'évolution de la base impactant la migration entre la v1.9.4 et la v1.11.3.   * v16 depuis v15 : pas d'évolution de la base impactant la migration entre la v1.9.4 et la v1.11.3.
Ligne 13: Ligne 14:
   * 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_v17</code>+  * Si nécessaire, cloner le dépôt Taxhub : <code bash>git clone https://github.com/PnX-SI/TaxHub.git taxhub.taxref</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>     * 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_v17</code> +  * Se placer dans le dossier cloné : <code bash>cd ~/www/taxhub.taxref</code> 
-  * Copier les fichiers de configuration : <code bash>+  * Basculer sur la branche de migation : <code bash>git switch feat/sinp-taxref-v18</code> 
 +  * Si nécessaire, copier les fichiers de configuration : <code bash>
 cp settings.ini.sample settings.ini cp settings.ini.sample settings.ini
 cp apptax/config.py.sample apptax/config.py cp apptax/config.py.sample apptax/config.py
Ligne 22: Ligne 24:
     * Éditer le fichier ''settings.ini'' : <code bash>vi settings.ini</code>     * Éditer le fichier ''settings.ini'' : <code bash>vi settings.ini</code>
       * Modifier les 3 paramètres suivant :<code properties>       * Modifier les 3 paramètres suivant :<code properties>
 +# En préprod: db_host=localhost
 db_host=10.0.1.20 db_host=10.0.1.20
  
Ligne 35: Ligne 38:
     * Éditer le fichier ''config.py'' : <code bash>vi apptax/config.py</code>     * Éditer le fichier ''config.py'' : <code bash>vi apptax/config.py</code>
       * Modifier les 2 paramètres suivant :<code properties>       * Modifier les 2 paramètres suivant :<code properties>
 +# En préprod: SQLALCHEMY_DATABASE_URI = "postgresql://geonatadmin:<geonatadmin-password>@localhost:5432/geonature2db"
 SQLALCHEMY_DATABASE_URI = "postgresql://geonatadmin:<geonatadmin-password>@10.0.1.20:5432/geonature2db" SQLALCHEMY_DATABASE_URI = "postgresql://geonatadmin:<geonatadmin-password>@10.0.1.20:5432/geonature2db"
 SECRET_KEY = '<generate-super-secret-key-with-uuid>' SECRET_KEY = '<generate-super-secret-key-with-uuid>'
 </code> </code>
   * Lancer l'installation du ''venv'' : <code bash>./install_app.sh</code>   * Lancer l'installation du ''venv'' : <code bash>./install_app.sh</code>
 +    * Stopper le script quand il demande le mot de passe de geonat pour installer les scripts systéme : ''CTRL+C''
   * 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-v17 import-taxref-v17</code> +  * Lancer l'import de TaxRef : <code bash>flask taxref migrate-to-v18 import-taxref-v18</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>+    * 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-v18 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/v17/csv/'' du dépôt. +    * Copier les fichiers csv générés par le script précédent dans le dossier ''taxref/v18/csv/'' du dépôt. 
-    * 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.+    * Créer les scripts SQL qui permettront la migration dans le dossier ''taxref/v18/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-v17 apply-changes --script_predetection ./pre_detection.sql --script_postdetection ./post_detection.sql</code>+  * Lancer la migration de TaxRef : <code bash>flask taxref migrate-to-v18 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 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. +  * Réactiver certaines contraintes :  
-  * Lier à nouveau les statuts de protection aux zones géographiques : <code bash>flask taxref link-bdc-statut-to-areas</code>+    * Se connecter à db-srv : <code bash> ssh geonat@db-<region>-sinp</code> 
 +    * Se placer dans ''~/data/taxref/v18/sql/'' avec : <code bash> cd ~/data/taxref/v18/sql/</code> 
 +    * Lancer : <code bash>psql -h localhost -U geonatadmin -d geonature2db -f ./reactivation_contraintes_apres_taxref.sql</code> 
 +  * Vérifier que la nouvelle version de TaxRef a bien été migré correctement ! Vérifier qu'un cd_nom disparu dans la v18 n'est plus présent dans votre table ''taxonomie.taxref'' et qu'un nouveau cd_nom ajouté à partir de la v18 s'y trouve bien. 
 +  * <color /#fff200>Si nécessaire (avant la v18)</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.
Ligne 79: Ligne 90:
         * quelques soit les valeurs de la colonne ''cd_raison_suppression'', il faudra supprimer les lignes correspondantes de la table ''cor_nom_liste'' et ''bib_noms'' à l'aide de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L89-L117| requêtes SQL qui seront à ajouter dans le fichier ''pre_detection.sql'']].         * quelques soit les valeurs de la colonne ''cd_raison_suppression'', il faudra supprimer les lignes correspondantes de la table ''cor_nom_liste'' et ''bib_noms'' à l'aide de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L89-L117| requêtes SQL qui seront à ajouter dans le fichier ''pre_detection.sql'']].
         *  les lignes ayant la valeur "1" dans la colonne ''cd_raison_suppression'' nécessitent de remplacer la valeur du champ ''cd_nom'' dans la table ''taxonomie.bib_noms'' à l'aide de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L82-L84| requêtes SQL qui seront à ajouter dans le fichier ''pre_detection.sql'']]. Si [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L85-L86| les requêtes de mise à jour]] pose problème [[https://github.com/PnX-SI/TaxHub/issues/495| vis à vis du maintient temporaire de l'ancienne version de TaxRef]], il est possible d'ajouter les cd_nom correspondant à [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L101| la liste des lignes à supprimer]] dans la table ''cor_nom_liste'' et [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L115| des lignes à supprimer]] dans la table ''taxonomie.bib_noms''.         *  les lignes ayant la valeur "1" dans la colonne ''cd_raison_suppression'' nécessitent de remplacer la valeur du champ ''cd_nom'' dans la table ''taxonomie.bib_noms'' à l'aide de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L82-L84| requêtes SQL qui seront à ajouter dans le fichier ''pre_detection.sql'']]. Si [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L85-L86| les requêtes de mise à jour]] pose problème [[https://github.com/PnX-SI/TaxHub/issues/495| vis à vis du maintient temporaire de l'ancienne version de TaxRef]], il est possible d'ajouter les cd_nom correspondant à [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L101| la liste des lignes à supprimer]] dans la table ''cor_nom_liste'' et [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L115| des lignes à supprimer]] dans la table ''taxonomie.bib_noms''.
 +      * ''gn_sensitivity.t_sensitivity_rules'' les changements à y effectuer :
 +        * les lignes ayant les valeurs "2" ou "3" dans la colonne ''cd_raison_suppression'' nécessitent de vérifier pourquoi le nom n'existe plus. Ce n'est pas normal car les noms sont dans des textes de loi et ne devrait pas disparaître. Demander confirmation auprès de botaniste/responsable SI. Il faudra plutôt utiliser [[https://github.com/cbn-alpin/sinp-paca-data/blob/main/taxref/v18/sql/pre_detection.sql#L39| une requête de mise à jour]].
 +        * les lignes ayant la valeur "1" dans la colonne ''cd_raison_suppression'' nécessitent de remplacer la valeur du champ ''cd_nom'' dans la table ''gn_sensitivity.t_sensitivity_rules'' à l'aide de [[https://github.com/cbn-alpin/sinp-paca-data/blob/main/taxref/v18/sql/pre_detection.sql#L41| requêtes SQL qui seront à ajouter dans le fichier ''pre_detection.sql'']].
   * Lancer à nouveau le script en essayant d'appliquer les changements ''flask taxref migrate-to-v17 apply-changes'', normalement le script SQL ''pre_detection.sql'' devrait s'exécuter correctement mais le script ''post_detection.sql'' devrait générer des erreurs. En effet, ce script "post-détection" est exécuté avant d'avoir réaliser le changement de référentiel TaxRef, ainsi [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/post_detection.sql#L4|la  réactivation]] des contraintes [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L41| désactiver]] dans le script ''pre_detection.sql'' peuvent générer de nouvelles erreurs. Voir [[https://github.com/PnX-SI/TaxHub/issues/495| ticket #495]]. Il est donc nécessaire de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L44-L51| modifier temporairement TaxRef pour qu'ils ressemblent à la future version]] sur laquelle nous cherchons à migrer.   * Lancer à nouveau le script en essayant d'appliquer les changements ''flask taxref migrate-to-v17 apply-changes'', normalement le script SQL ''pre_detection.sql'' devrait s'exécuter correctement mais le script ''post_detection.sql'' devrait générer des erreurs. En effet, ce script "post-détection" est exécuté avant d'avoir réaliser le changement de référentiel TaxRef, ainsi [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/post_detection.sql#L4|la  réactivation]] des contraintes [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L41| désactiver]] dans le script ''pre_detection.sql'' peuvent générer de nouvelles erreurs. Voir [[https://github.com/PnX-SI/TaxHub/issues/495| ticket #495]]. Il est donc nécessaire de [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/pre_detection.sql#L44-L51| modifier temporairement TaxRef pour qu'ils ressemblent à la future version]] sur laquelle nous cherchons à migrer.
   * Si la base de données de TaxHub a évolué, il se peut que l'utilisation des scripts déclenche des erreurs. Il est alors nécessaire de rechercher dans les migrations Alembic de TaxHub le code SQL correspondant. Il est possible [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/post_detection.sql#L3-L7| d'appliquer ce code à l'ajoutant au script "pre_detection.sql"]].    * Si la base de données de TaxHub a évolué, il se peut que l'utilisation des scripts déclenche des erreurs. Il est alors nécessaire de rechercher dans les migrations Alembic de TaxHub le code SQL correspondant. Il est possible [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/taxref/v17/sql/post_detection.sql#L3-L7| d'appliquer ce code à l'ajoutant au script "pre_detection.sql"]]. 
  • serveurs/installation/web-srv/geonature-taxref-upgrade.1719933318.txt.gz
  • Dernière modification : 2024/07/02 15:15
  • de jpmilcent