====== 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 :
===== TaxHub de v1.7.4.dev0 vers v1.9.4 =====
* Depuis le dossier de Taxhub : cd ~/workspace/geonature/web/taxhub/
* Voir [[https://github.com/PnX-SI/TaxHub/releases/tag/1.9.3|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 : [[https://github.com/PnX-SI/TaxHub/tree/1.7.3/data/scripts/update_taxref|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 : [[https://github.com/PnX-SI/TaxHub/tree/1.9.3/data/scripts/update_taxref|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 [[https://taxhub.readthedocs.io/fr/latest/installation.html#mise-a-jour-de-l-application|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'' [[https://github.com/PnX-SI/TaxHub/tree/develop/apptax/migrations/taxref|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 ''
==== Notes sur les mise à jour TaxRef ====
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 temporaires''tmp_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//).
----
===== Mise à jour UsersHub de v2.1.4.dev0 vers 2.2.2 =====
* Voir [[https://github.com/PnX-SI/UsersHub/releases|la doc des releases]]
* 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 [[https://usershub.readthedocs.io/fr/latest/installation.html#mise-a-jour-de-l-application|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.
===== Mise à jour GeoNature de v2.6.3.dev0 vers 2.7.5 =====
* 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 [[https://github.com/cbn-alpin/sinp-aura-data/blob/main/db-geonature/data/sql/02_replace_synthese_export_view.sql| 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 [[https://github.com/cbn-alpin/sinp-paca-data/blob/master/db-geonature/data/sql/01_fix_v_synthese_for_export.sql|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 [[https://github.com/cbn-alpin/sinp-paca-srv/|sinp-paca-srv]] et [[https://github.com/cbn-alpin/sinp-aura-srv/|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.
===== Mise à jour GeoNature de v2.7.5 vers 2.10.0.dev =====
* 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 [[serveurs:installation:web-srv:geonature-mise-a-jour#surcouchage_des_fichiers_systemd_de_geonature_geonature_v281| 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
#geonature db stamp 1715cf31a75d # MNT de l’IGN #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''
* Suivre [[https://docs.geonature.fr/installation.html#mise-a-jour-de-l-application|la procédure classique de mise à jour de GeoNature]].
==== Activer l'accès public ====
* Créer une redirection de "webmaster-user-public@" vers les adresses des webmasters de GeoNature.
* Dans //UsersHub//, créer un nouvel utilisateur :
* Prénom : Utilisateur
* Nom : PUBLIC
* Email associé : webmaster-user-public@
* 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 = ""
* Relancer la prise en compte des paramètres de config : '' geonature update-configuration ''
==== Mise à jour des profils ====
* Mettre à jour la vue ''gn_profiles.v_synthese_for_profiles'' grâce au script SQL présent dans le dépôt //sinp--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''