serveurs:installation:web-srv:geonature-mise-a-jour-v2-6-3-dev0

Mise à GeoNature v2.6.3.dev0, TaxHub v1.7.4.dev0, UsersHub v2.1.4.dev0 : test local

Commencer par la mise à jour de TaxHub et TaxRef :

  • Depuis le dossier de Taxhub :
    cd ~/workspace/geonature/web/taxhub/ 
  • Voir v1.9.3
  • Ajout de accent :
    sudo -n -u postgres -s psql -d $db_name -c 'CREATE EXTENSION IF NOT EXISTS "unaccent";'
  • Mise à jour de la BDD v1.7.3 vers 1.8.0 :
    psql -h localhost -U geonatadmin -d gn2_dev_sinp -f "data/update1.7.3to1.8.0.sql"
  • Mise à jour vers TaxRef v13 : doc
    • Se placer dans le dossier du script de mise à jour :
      cd data/scripts/update_taxref/
    • Renseigner le mot de passe sudo :
      sudo ls
    • Lancer le script de mise à jour :
      ./import_taxref_v13_data.sh
    • Les fichier CSV générés dans /tmp contiennent un cd_nom qui n'a pas de remplaçant, il est donc nécessaire de supprimer les lignes correspondante de la synthese et de bib_noms. Seul bib_noms est concerné car nous y avons placé tout TaxRef…
      • Nous remplaçons les fichiers : 2.1_taxref_changes_corrections_pre_detections.sql, 2.2_taxref_changes_corrections_post_detections.sql et 4.3_restore_local_constraints.sql du dossier data/scripts/update_taxref/scripts/ par ceux du dépôt sinp-paca-data présent dans le dossier taxref/v13/data/sql.
      • Les fichiers générés par les scripts sont présents dans taxref/v13/data/csv.
    • Appliquer les changements :
      ./apply_changes.sh 13
    • Vérifier les fichiers CSV du dossier /tmp : liste_changements.csv et nb_changements.csv
    • Nettoyer les tables résiduelles :
      ./clean_db.sh
  • Mise à jour vers TaxRef v14 : doc
    • Se placer dans le dossier du script de mise à jour :
      cd data/scripts/update_taxref/
    • Renseigner le mot de passe sudo :
      sudo ls
    • Lancer le script de mise à jour :
      ./import_taxref_v14.sh
    • Les fichier CSV générés dans /tmp contiennent un cd_nom qui n'a pas de remplaçant, il est donc nécessaire de supprimer les lignes correspondante de la synthese et de bib_noms. Seul bib_noms est concerné car nous y avons placé tout TaxRef…
      • Nous remplaçons les fichiers : 2.1_taxref_changes_corrections_pre_detections.sql, 2.2_taxref_changes_corrections_post_detections.sql et 4.3_restore_local_constraints.sql du dossier data/scripts/update_taxref/scripts/ par ceux du dépôt sinp-paca-data présent dans le dossier taxref/v14/data/sql.
      • Les fichiers générés par les scripts sont présents dans taxref/v14/data/csv.
    • Appliquer les changements :
      ./apply_changes.sh 14
    • Vérifier les fichiers CSV du dossier /tmp : liste_changements.csv et nb_changements.csv
    • Nettoyer les tables résiduelles :
      ./clean_db.sh
  • Passage à de la version 1.8.0 à 1.9.3 :
    • Arrêter le service Supervisor de Taxhub :
      sudo supervisorctl stop taxhub
    • Supprimer le fichier de configuration de Supervisor :
      sudo rm /etc/supervisor/conf.d/taxhub-service.conf
    • Installer le paquet python3-venv nouvellement nécessaire :
      sudo apt install python3-venv
    • Déplacer config.py situé à la racine de TaxHub dans le sous-dossier apptax :
      mv config.py apptax/
      • Modifier le fichier config.py :
        • Supprimer les lignes :
          # File
          import os
          BASE_DIR = os.path.abspath(os.path.dirname(__file__))
        • Remplacer le paramètre UPLOAD_FOLDER = 'static/medias' par UPLOAD_FOLDER = 'medias'
    • Sur un serveur classique (pas pour le développement) Suivre la doc d'installation classique de TaxHub.
      • En développement, réinstaller juste l'app :
        ./install_app.sh
    • Vérifier la présence du nouveau service Systemd pour Taxhub :
      sudo systemctl status taxhub
      • Démarrer le service si nécessaire :
        sudo systemctl start taxhub
      • Activer le service au démarrage si nécessaire :
        sudo systemctl enable taxhub
    • Voir la section surcouchage du service Systemd de Taxhub.
    • S'assurer du bon fonctionnement de la conf Nginx.
  • ATTENTION : Ne pas mettre à jour la base de données avec Alembic via TabHub. Il est nécessaire de la faire via GeoNature.
  • Mettre à jour GeoNature avant de faire la migration TaxRef v15
  • Mise à jour vers TaxRef v15 : branche develop doc
    • Assurer vous d'avoir mise à jour la branche "taxonomie" vias geonature avec geonature db upgrade taxonomie par exemple.
      • Vous devez avoir la revision c4415009f164 Taxref v15 sur la branche taxonomie
    • Se placer dans le dossier de TaxHub
    • Activer le venv : source venv/bin/activate
    • Charger l'appli FLASK : export FLASK_APP=apptax/app.py
    • Lancer la commande : flask taxref_migration update_taxref_v15
    • À partir des fichiers CSV créé les fichiers SQL qui seront utilisé lors du changement.
    • Appliquer les changements :
      flask taxref_migration apply_changes --script_predetection /home/jpmilcent/workspace/cbna/sinp/taxhub/apptax/migrations/data/migrate_taxref_version/2.1_taxref_changes_corrections_pre_detections.sql --script_postdetection /home/jpmilcent/workspace/cbna/sinp/taxhub/apptax/migrations/data/migrate_taxref_version/2.2_taxref_changes_corrections_post_detections.sql
    • Puis, retourner dans GeoNature et estampiller le changement à la base : geonature db stamp ad35a3bf85c2
    • Ensuite, finir la mise à jour de la base : geonature db autoupgrade

Une fois le premier script exécuté, il est nécessaire de bien analyser les les fichiers CSV présents dans le dossier /tmp et les tables du schéma temporairestmp_taxref_changes.

Il faudra traiter dans les fichiers SQL 2.1_taxref_changes_corrections_pre_detections.sql, 2.2_taxref_changes_corrections_post_detections.sql et 4.3_restore_local_constraints.sql, les cas suivant :

  • Répercuter les conséquences des cd_noms disparus sur les données de GeoNature (Synthèse, Occtax et éventuelles autres sources). Ceux de la table taxonomie.taxref_protection_especes sont optionnels.
  • Gérer les attributs en conflit (cd_nom mergés et attributs incohérents)
  • Gérer les éventuels splits
  • Vérifier les éventuels taxons locaux (Hors Taxref) si ils ont été ajoutés dans la nouvelle version de Taxref

Dans notre cas, cela consiste principalement à :

  • mettre à jour dans "gn_synthese.synthese" les cd_nom supprimés listés dans liste_cd_nom_disparus_bib_noms.csv et dans liste_cd_nom_disparus_synthese.csv. Les requêtes SQL doivent être placées dans le fichier 2.1_taxref_changes_corrections_pre_detections.sql.
  • Pour les cd_nom sans remplaçant mettre à NULL le cd_nom. Les fournisseurs de données pourraitent vouloir mettre à jour ses observations en question.
  • Dans le fichiers liste_changements.csv, rechercher dans la colonne "action" les entrées Loose attributes and medium now attach to … et "Conflict …" pour lesquels il peut y avoir une action à mener si des attributs (att_nb) ou des media existent (media_nb).

  • Arrêter le service Supervisord de UsersHub :
    sudo supervisorctl stop usershub2
  • Supprimer le fichier de configuration de Supervisor :
    sudo rm /etc/supervisor/conf.d/usershub-service.conf
  • Installer le paquet python3-venv nouvellement nécessaire (normalement fait pour Taxhub) :
    sudo apt install python3-venv
  • Supprimer dans le fichier config/config.py le paramètre URLS_COR, il n'est plus utilisé.
  • Sur un serveur classique (pas pour le développment) Suivre la doc d'installation classique d'UsersHub.
    • En développement, réinstaller juste l'app :
      ./install_app.sh
  • Vérifier la présence du nouveau service Systemd pour UsersHub :
    sudo systemctl status usershub
    • Démarrer le service si nécessaire :
      sudo systemctl start usershub
    • Activer le service au démarrage si nécessaire :
      sudo systemctl enable usershub
  • Voir la section surcouchage du service Systemd de UsersHub.
  • Vérifier le bon fonctionnement de la configuration de Nginx.
  • ATTENTION : Ne pas mettre à jour la base de données avec Alembic via UsersHub. Il est nécessaire de la faire via GeoNature.
  • Afin de pouvoir faire évoluer la base de données du SINP, il faut modifier le script de migration "data/migrations/2.6.2to2.7.0.sql". C'est fait dans la branche locale feat/sinp-migrate-2.6.2-to-2.7.0.
  • Création de la branche feat/sinp-2.8.1 contenant les branches feat/data-blurring-2.8.1, feat/sinp-migrate-2.6.2-to-2.7.0.
  • Mise à jour de la base vers v2.7.0 :
    psql -h localhost -U geonatadmin -d gn2_dev_sinp -f "data/migrations/2.6.2to2.7.0.sql"
    • Mettre à jour la vue "gn_synthese.v_synthese_for_export" suite à la migration, se placer dans le dossier db-geonature des dépôts sinp-paca-data ou sinp-aura-data :
      • Vue du module Export pour le SINP AURA :
        psql -h localhost -U geonatadmin -d gn2_dev_sinp -f "data/sql/02_replace_synthese_export_view.sql"
      • Vue v_synthese_for_export SINP PACA :
        psql -h localhost -U geonatadmin -d gn2_dev_sinp -f "data/sql/01_fix_v_synthese_for_export.sql"
  • Changement du fichier custom.scss :
    • Modifier le chemin vers le fichier utilisé dans le fichier frontend/src/assets/custom.css avec : mv frontend/src/custom/custom.scss frontend/src/assets/custom.css
    • Le fichier est en CSS et plus en SCSS le modifier en conséquence
    • Changer son emplacement sur les dépôts sinp-paca-srv et sinp-aura-srv.
  • Mise à jour de la base vers v2.7.2 :
    psql -h localhost -U geonatadmin -d gn2_dev_sinp -f "data/migrations/2.7.1to2.7.2.sql"
  • Pour le passage à la version v2.8.1, il est nécessaire d'avoir mis à jour UsersHub vers la version 2.2.1.
  • Stopper le service GN de Supervisord :
    sudo supervisorctl stop geonature2
  • Supprimer le fichier de configuration Supervisor de GeoNature :
    sudo rm /etc/supervisor/conf.d/geonature-service.conf
  • Si nécessaire, désinstaller Supervisor :
    sudo apt remove supervisor
  • Modifier le fichier config/geonature_config.toml en :
    • ajoutant (changer le chemin en local):
      [ALEMBIC]
      VERSION_LOCATIONS = "/home/geonat/www/usershub/app/migrations/versions/"
    • remplaçant les id_type par des type_code dans le paramètre AREA_FILTERS. Par exemple, l'id 25 devient "COM".
    • remplacer les id_type par des type_code dans le paramètre AREA_TYPES. Ex. : AREA_TYPES = ["COM", "DEP", "SINP"]
  • Passage à Systemd et surcouchage du service, voir la section dédiée dans la mise à jour de GeoNature.
  • Vérifier la configuration de Nginx.
  • Activer le venv : source backend/venv/bin/activate
  • Exécuter les commandes suivantes afin d’indiquer à Alembic l’état de votre base de données :
    geonature db stamp f06cc80cc8ba  # GeoNature 2.7.5
    geonature db stamp 0dfdbfbccd63  # référentiel géographique des communes
    geonature db stamp 3fdaa1805575  # référentiel géographique des départements
    geonature db stamp 586613e2faeb  # référentiel géographique des mailles 1×1
    geonature db stamp 7d6e98441e4c  # référentiel géographique des mailles 5×5
    geonature db stamp ede150d9afd9  # référentiel géographique des mailles 10×10
    #<del>geonature db stamp 1715cf31a75d  # MNT de l’IGN</del> #Non nécessaire sur les SINP et en local.
  • Avant de poursuivre, il est nécessaire d’exécuter la requête suivante pour nettoyer la table gn_sensitivity.cor_sensitivity_criteria sinon la révision Alembic suivante ne passe pas :
    psql -h localhost -U geonatadmin -d gn2_dev_sinp -c "DELETE FROM gn_sensitivity.cor_sensitivity_criteria WHERE id_criteria  IS NULL;" 
  • Vue que la base de données contient déjà le SQL concernant la mise à jours des permissions et des demandes d'accès, il faut mettre à jour la base jusqu'à la révision précédent "access-reqest (3b2f3de760dc)" car "data-blurring (c9854947fa23)" suit "access-reques". Normalement, ces 2 révisions doivent se situer tout au bout de la branche principale de GeoNature :
    • pour trouver la révision précédent "access-reqest (3b2f3de760dc)", ouvrir le fichier 3b2f3de760dc_access-reqest.py et récupérer la révision correspondant à la variable down_revision. Ex. : down_revision = 'ca052245c6ec'
    • pour lancer la mise à jour jusqu'à la bonne révision :
      geonature db upgrade ca052245c6ec
      • ATTENTION : la création du schéma "gn_profiles" peut prendre plusieurs heures (~2h).
    • pour estampiller la base avec les révisions correspondant "data-blurring" (c9854947fa23) :
      geonature db stamp c9854947fa23 # data-blurring
    • Ensuite, il faut exécuter les migrations qui suivent "data-blurring" (comme "improve sensitivity constraints"), pour cela il suffit de réaliser l'upgrade de la branche "geonature" :
      geonature db upgrade geonature
  • Vérifier l'état de la base de données à l'aide de la commande :
    geonature db status
    • Mettre à jour les branches nécessaires :
      geonature db autoupgrade -x recompute-sensitivity=false -x restore-diffusion-level=false
    • ATTENTION : NE PAS installer la branche "ref_sensitivity_inpn" car nous ne gérons pas les règles de sensibilité. Si cela devait malgré tout être fait, bien utilisé l'option -x restore-diffusion-level=false pour éviter le recalcul du champ "diffusion_level" de la synthese.
    • ATTENTION : il ne devrait pas être nécessaire d'utiliser la commande "autoupgrade" mais si c'est à faire, utiliser les options suivantes pour ne pas mettre à jour les niveaux de diffusion/sensibilité de la synthèse :
      geonature db autoupgrade -x recompute-sensitivity=false -x restore-diffusion-level=false
  • Déplacer le contenu du fichier frontend/src/custom.scss dans frontend/src/assets/custom.css puis supprimer frontend/src/custom.scss
  • Créer une redirection de "webmaster-user-public@<domaines>" vers les adresses des webmasters de GeoNature.
  • Dans UsersHub, créer un nouvel utilisateur :
    • Prénom : Utilisateur
    • Nom : PUBLIC
    • Email associé : webmaster-user-public@<domaine>
    • avec login user-public
    • Ajouter cet utilisateur au groupe "Grp_utilisateurs"
    • Commentaire : Utilisateur public permettant un accès à GeoNature sans création de compte.
  • Ajouter les paramètres suivant au fichier geonature_config.toml :
    # Configuration de l'accès sans authentification
    [PUBLIC_ACCESS]
        ENABLE_PUBLIC_ACCESS = true
        PUBLIC_LOGIN = "user-public"
        PUBLIC_PASSWORD = "<mot-de-passe>"
  • Relancer la prise en compte des paramètres de config : geonature update-configuration
  • Mettre à jour la vue gn_profiles.v_synthese_for_profiles grâce au script SQL présent dans le dépôt sinp-<region>-data, dossier db-geonature/data/sql/
    • La nouvelle vue exclue les observations sensibles ou privées
  • Actualiser les vues matérialisées des profils avec la commande : geonature profiles update
  • serveurs/installation/web-srv/geonature-mise-a-jour-v2-6-3-dev0.txt
  • Dernière modification : 2022/04/12 19:51
  • de jpmilcent