====== 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''