Monter Geonature de 2.4.1 à 2.9.2 en develop - ch-cbna/geonature GitHub Wiki
Notes Releases: https://github.com/PnX-SI/GeoNature/releases?page=2 Doc wiki : https://wiki-sinp.cbn-alpin.fr/serveurs/installation/web-srv/geonature-mise-a-jour
- Arrêter GN, TH, UH
- Se placer sur la branche équivalente à master :
git checkout 2.9.2
git submodule init && git submodule update
2.5.0
-
Commencer par exécuter le script SQL de mise à jour du schéma ref_nomenclatures de la BDD dans le dossier flore_sentielle :
cd flore_sentinelle/
wget https://raw.githubusercontent.com/PnX-SI/Nomenclature-api-module/master/data/update1.3.3to1.3.4.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f update1.3.3to1.3.4.sql
-
Exécuter ensuite le script SQL de mise à jour de la BDD de GeoNature :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.4.1to2.5.0.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.4.1to2.5.0.sql
-
Réactiver la version de python par défaut (3.9.2) de Debian en désinstallant pyenv (https://github.com/pyenv/pyenv#uninstall-python-versions)
2.5.2
Executer la Màj de la BDD :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.5.1to2.5.2.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.5.1to2.5.2.sql
2.5.3 :
-
Vérifier que les utilisateurs génériques (ex : jpm) et admin peuvent toujours à accéder aux sous-modules Permissions et Nomenclatures : Désormais les objets des modules (par exemple les objets 'Permissions' et 'Nomenclatures' du module 'ADMIN') héritent automatiquement des permissions définies au niveau du module parent et à défaut au niveau de GeoNature (#1028). Il s'agit d'une évolution de mise en cohérence puisque les modules héritaient déjà des permissions de GeoNature, mais pas leurs objets. Si vous avez défini des permissions particulières aux niveaux des objets, vérifier leur cohérence avec le nouveau fonctionnement. NB : si vous aviez mis des droits R=0 pour un groupe au module 'ADMIN', les utilisateurs de ce groupe ne pourront pas accéder aux sous-modules 'permissions' et 'nomenclatures'.
-
Executer la Màj de la BDD :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.5.2to2.5.3.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.5.2to2.5.3.sql
2.6.0
-
Executer la Màj de la BDD :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.5.5to2.6.0.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.5.5to2.6.0.sql
-
Mettre à jour la longueur du champs gn_synthese.synthese.reference_biblio à 5000 charactères. Exécutez la commande suivante dans la console :
psql -U geonatadmin -d gn2_flore_sentinelle -c "UPDATE pg_attribute SET atttypmod = 5004 WHERE attrelid = 'gn_synthese.synthese'::regclass AND attname = 'reference_biblio';"
-
Exécuter le script de mise à jour de la BDD du sous-module de nomenclature :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/Nomenclature-api-module/master/data/update1.3.4to1.3.5.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f update1.3.4to1.3.5.sql
2.6.1
-
Exécuter le script de mise à jour de la BDD du sous-module de nomenclature :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/Nomenclature-api-module/master/data/update1.3.5to1.3.6.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f update1.3.5to1.3.6.sql
-
Executer la Màj de la BDD :
cd geonature/
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.6.0to2.6.1.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.6.0to2.6.1.sql
2.7.0
Màj version Taxhub de 1.7.1 à 1.8.1
cd ../taxhub
git checkout 1.8.1
TH 1.7.2
- Executer la Màj de la BDD :
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/update1.7.1to1.7.2.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/update1.7.1to1.7.2.sql
TH 1.8.0
-
Exécuter la commande suivante pour ajouter l'extension PostgreSQL unaccent, en remplaçant la variable $db_name par le nom de votre BDD :
sudo -n -u postgres -s psql -d gn2_flore_sentinelle -c 'CREATE EXTENSION IF NOT EXISTS "unaccent";'
(Vérifier avecsudo ls
) -
Executer la Màj de la BDD :
wget https://raw.githubusercontent.com/PnX-SI/TaxHub/master/data/update1.7.3to1.8.0.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/update1.7.3to1.8.0.sql
-
Exécuter la mise à jour vers Taxref v14 :
cd data/scripts/update_taxref/
./import_taxref_v14.sh
./apply_changes.sh 14
!! PB J-P !! : si message lié à cd_nom lancer les commandes sql ci-dessous puis relancer ./apply_changes.sh 14
ALTER TABLE pr_conservation_strategy.t_assessment DROP CONSTRAINT fk_t_assessment_id_territory_cd_nom ;
ALTER TABLE pr_conservation_strategy.t_assessment ADD CONSTRAINT fk_t_assessment_id_territory_cd_nom FOREIGN KEY (id_territory, cd_nom) REFERENCES pr_conservation_strategy.cor_territory_taxon(id_territory, cd_nom) ON UPDATE CASCADE ON DELETE CASCADE ;
Continuer la migration de Geonature
cd ../geonature
-
Executer la Màj de la BDD :
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.6.2to2.7.0.sql
psql -U geonatadmin -d gn2_flore_sentinelle -f data/migrations/2.6.2to2.7.0.sql
-
Sur le serveur, il faudra créer un fichier dans frontend/src/assets/custom.css avec le contenu suivant :
#app-toolbar {
background-color: #444;
color: #fff;
}
Il faudra ensuite supprimer frontend/src/custom/custom.scss
2.7.2
Executer la Màj de la BDD :
wget https://raw.githubusercontent.com/PnX-SI/GeoNature/master/data/migrations/2.7.1to2.7.2.sql
psql -U geonatadmin -h localhost -d gn2_flore_sentinelle -f data/migrations/2.7.1to2.7.2.sql
2.8.0
Màj de Usershub de 2.1.2 à 2.2.2
cd ../usershub/
git checkout 2.2.2
UH 2.1.3
-
Pour passer le champs bib_organismes.nom_organisme à 500 caractères, exécuter en ligne de commande :
psql -U geonatadmin -d gn2_flore_sentinelle -c "UPDATE pg_attribute SET atttypmod = 500+4 WHERE attrelid = 'utilisateurs.bib_organismes'::regclass AND attname = 'nom_organisme';"
-
Executer la Màj de la BDD :
git checkout 2.1.3
wget https://raw.githubusercontent.com/PnX-SI/UsersHub/2.1.3/data/update_2.1.2to2.1.3.sql
psql -U geonatadmin -h localhost -d gn2_flore_sentinelle -f data/update_2.1.2to2.1.3.sql
-
Revenir sur version 2.2.2
git checkout 2.2.2
UH 2.2.0
- Supprimer supervisor s'il a été installé sur le nouveau serveur ! (https://github.com/PnX-SI/UsersHub/releases/tag/2.2.0) Suppression de supervisor :
- Vérifier que UsersHub n’est pas lancé par supervisor :
sudo supervisorctl stop usershub2
- Supprimer le fichier de configuration de supervisor
sudo rm /etc/supervisor/conf.d/usershub-service.conf
- Si supervisor n’est plus utilisé par aucun service (répertoire /etc/supervisor/conf.d/ vide), il peut être désinstallé :
sudo apt remove supervisor
- Installer le paquet python3-venv nouvellement nécessaire :
sudo apt install python3-venv
UH 2.2.2
Vous pouvez supprimer le paramètre URLS_COR de votre fichier config/config.py car celui-ci n'est plus utilisé.
Màj de Taxhub de 1.8.0 à 1.9.4
cd ../taxhub
git checkout 1.9.4
TH 1.9.0
- Supprimer supervisor s'il a été installé sur le nouveau serveur ! Suppression de supervisor :
- Vérifier que TaxHub n’est pas lancé par supervisor :
sudo supervisorctl stop taxhub
- Supprimer le fichier de configuration de supervisor
sudo rm /etc/supervisor/conf.d/taxhub-service.conf
- Si supervisor n’est plus utilisé par aucun service (répertoire /etc/supervisor/conf.d/ vide), il peut être désinstallé :
sudo apt remove supervisor
-
Installer le paquet python3-venv nouvellement nécessaire :
sudo apt install python3-venv
-
Déplacer le fichier de configuration config.py situé à la racine de TaxHub dans le sous-dossier apptax Vous devez modifier le fichier de configuration apptax/config.py : Si vous servez TaxHub sur un préfixe (e.g. /taxhub), rajouter dans config.py le paramètre suivant :
APPLICATION_ROOT = '/taxhub'
TH 1.9.2
- Supprimer les lignes suivantes du fichier de configuration apptax/config.py :
# File
import os # A SUPPRIMER
BASE_DIR = os.path.abspath(os.path.dirname(__file__)) # A SUPPRIMER
- Si vous l'aviez renseigné dans votre configuration, modifier le paramètre
UPLOAD_FOLDER = 'static/medias' en UPLOAD_FOLDER = 'medias'
Continuer sur cd../geonature
2.8.0
-
Suppression de supervisor s'il existe sur le serveur :
- Stopper GeoNature :
sudo supervisorctl stop geonature2
- Supprimer le fichier de configuration supervisor de GeoNature :
sudo rm /etc/supervisor/conf.d/geonature-service.conf
- Si supervisor n’est plus utilisé par aucun service (répertoire /etc/supervisor/conf.d/ vide), il peut être désinstallé (
sudo apt remove supervisor
)
- Stopper GeoNature :
-
Passage à Alembic :
- S’assurer d’avoir une base de données de GeoNature en version 2.7.5
- Si vous avez UsersHub installé, ajoutez dans votre configuration GeoNature la section suivante (en adaptant le chemin) :
[ALEMBIC]
VERSION_LOCATIONS = '/path/to/usershub/app/migrations/versions'
- Installer le backend de Geonature
cd install/
./01_install_backend.sh
cd ../
source backend/venv/bin/activate
-
Supprimer tous les liens symboliques des modules :
rm -f pr_priority_flora sft sht suivi_hab_sta
lrwxrwxrwx 1 choarau choarau 68 2 juin 14:31 pr_priority_flora -> /home/choarau/workspace/geonature/flore_sentinelle/flore_prioritaire lrwxrwxrwx 1 choarau choarau 73 31 mai 11:36 sft -> /home/choarau/workspace/geonature/flore_sentinelle/suivi_flore_territoire lrwxrwxrwx 1 choarau choarau 75 31 mai 11:36 sht -> /home/choarau/workspace/geonature/flore_sentinelle/suivi_habitat_territoire lrwxrwxrwx 1 choarau choarau 72 1 juin 16:29 suivi_hab_sta -> /home/choarau/workspace/geonature/flore_sentinelle/suivi_habitat_station -
Exécuter les stamps suivants (sauf celui du MNT) 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
- Mettre sa base de données à jour avec Alembic : geonature db autoupgrade :
geonature db autoupgrade
2.9.0
- Mettre en place trigger pour relier données des modules à la Synthèse : profils de taxons, sensibilité, crons
-
Les nouvelles fonctionnalités liées aux profils de taxons nécessitent de rafraichir des vues materialisées à intervalles réguliers et donc de créer une tâche planfiée (cron). Voir documentation (https://docs.geonature.fr/installation.html#taches-planifiees)
-
Le référentiel de sensibilité est désormais disponible via une migration Alembic. Celui-ci nécessite le référentiel des régions (branche Alembic ref_geo_fr_regions), ainsi que le référentiel des anciennes régions (branche Alembic ref_geo_fr_regions_1970) – l’installation de ces référentiels est automatique avec l'installation des règles de sensibilité.
Si vous possédez déjà le référentiel, vous pouvez l’indiquer à Alembic :
geonature db stamp 7dfd0a813f86
Si vous avez installé GeoNature 2.8.X, le référentiel de sensibilité n’a pas été installé automatiquement. Vous pouvez l’installer manuellement :
geonature db upgrade ref_sensitivity_inpn@head
Par défaut, seule les règles nationales sont activées, vous laissant le soin d’activer vos règles locales en base vous-même. Vous pouvez également demander, lors de l’installation du référentiel, à activer (resp. désactiver) toutes les règles en ajout à la commande Alembic l’option -x active=true
(resp. -x active=false
).
2.9.2
Prendre en compte tout ce qui est lié à la Synthese lors du basculement sur serveur :
La correction de la fonction de calcul de la sensibilité est suivie d’un recalcul automatique du niveau de sensibilité des données présentes dans la synthèse. Si vous ne souhaitez pas procéder à ce recalcul, ajoutez le paramètre -x recompute-sensitivity=false
lors de la mise à jour de la base de données avec la commande geonature db autoupgrade (lancée automatiquement par le script migration.sh) :
(venv)$ geonature db autoupgrade -x recompute-sensitivity=false
Le niveau de diffusion des données dans la synthèse est remis à NULL si celui-ci équivaut au niveau de sensibilité. Seuls les niveaux de diffusion qui différent sont laissés intacts. Si vous souhaitez rectifier vous-mêmes vos niveaux de diffusion et ne pas les remettre à NULL quand ils sont équivalents au niveau de sensibilité, vous pouvez ajouter le paramètre -x clear-diffusion-level=false
lors de la mise à jour de la base de données :
(venv)$ geonature db autoupgrade -x clear-diffusion-level=false
Si vous redescendez à l’état antérieur de votre base de données, les niveaux de diffusion seront restaurés à partir du niveau de sensibilité ; vous pouvez éviter ceci avec -x restore-diffusion-level=false
.
Attention, jusqu'à sa version 1.5.1, GeoNature-atlas s'appuie uniquement sur le champs id_nomenclature_diffusion_level de la table gn_synthese.synthese de GeoNature pour dégrader les données sensibles (https://github.com/PnX-SI/GeoNature-atlas/blob/1.5.1/data/gn2/atlas_synthese.sql#L22-L36). Il vous faut donc adapter les vues et/ou vues matérialisées de GeoNature-atlas pour prendre en compte désormais aussi le champs "Niveau de diffusion".
UH & TH
Lancer l'installation de UH et TH
Usershub :
geonature db upgrade usershub@head
ERREUR :geonature db stamp f63a8f44c969
puis de nouveaugeonature db upgrade usershub@head
Taxhub :
geonature db stamp 3fe8c07741be
# version 1.8.1 du schéma taxonomie et les données d’exemplesgeonature db stamp f61f95136ec3
# données INPN du schema taxonomiegeonature db upgrade taxonomie@head
Pour Taxhub et Usershub, ajouter dans les fichiers settings.ini : mode="dev"
pour activer l'installation en mode "developpement", du coup, en local uniquement.
-
cd ../usershub
-
git submodule init && git submodule update
-
supprimer le dossier "venv" s'il existe (Maj + suppr)
-
./install_app.sh
-
cd ../taxhub
-
supprimer le dossier "venv" s'il existe (Maj + suppr)
-
git submodule init && git submodule update
-
./install_app.sh
Lancer l'installation du Frontend
cd ../geonature/install
./04_install_frontend.sh --dev
- Modifier
if ! version_gt "${version}" "2.9.2"; then
dans geonature_dev_frontend.sh geonature update-configuration --build false
- Si le frontend est déjà lancé par ailleurs
ps -aux|grep 4200
kill -9 484530 # numéro de la ligne