Import des données SINP-AURA pour GeoNature et l'Atlas
Récupération en local du dépôt "data" et transfert sur le serveur
- En local, sur votre machine, récupérer le dépôt Github "sinp-aura-data" :
- Clonage du dépôt :
git clone git@github.com:cbn-alpin/sinp-aura-data.git
- Se placer dans le dépôt cloné :
cd sinp-aura-data
- Initialisation si nécessaires des sous-modules Git :
git submodule init
- Mise à jour des sous-modules Git :
git submodule update
- ATTENTION : avant un transfert sur le serveur, si nécessaire sauvegarder le dossier "data" : voir ci-dessous
- Se placer à la racine du dossier sinp-aura-data
- Transférer les scripts :
rsync -av --copy-unsafe-links --exclude var --exclude .git --exclude .gitmodules --exclude .editorconfig --exclude .vscode --exclude .gitignore --exclude settings.ini --exclude "data/raw/*" --exclude venv --exclude .venv --exclude "import-parser/data/*" ./ geonat@db-aura-sinp:~/data/ --dry-run
- Supprimer l'option
--dry-run
si tout semble ok pour effectuer le transfert réel
- Se connecter au serveur
- Créer les fichiers settings.ini à partir des fichiers settings.sample.ini pour : shared, area, cbnmc, …
- Préparer l'environnement du script import-parser en suivant les indications du fichier README.md (import-parser)
- Notes : il est nécessaire de redonner les droits d’exécution à GCC pour tout le monde si l'on veut pouvoir installer correctement le venv avec
sudo chmod o+x /usr/bin/gcc
. Une fois l'installation terminée, retirer les à nouveau avecchmod o-x /usr/bin/gcc
.
- Notes : les données brutes nécessaires aux scripts sont automatiquement téléchargées depuis Dropbox
Sauvegarde du dossier "data" de l'instance "db-srv"
- Se connecter à l'utilisateur "admin" sur le serveur :
ssh geonat@db-aura-sinp
- Créer le dossier de sauvegarde :
mkdir -p backups/data
- Sauvegarder le dossier "data" :
mv data backups/data/$(date +%F)
- Recréer le dossier "data" vide :
mkdir data
Ré-initialisation de la base de données GeoNature
Cette manipulation est dangereuse car elle supprime tout le contenu de la base de données de GeoNature !
- Suivre les étapes de mise à jour d'une installation de GeoNature, au niveau de l'intervention sur "db-srv" suivre ceci:
- Sur l'instance "db-srv" connecté en tant que "geonat", suivre les étapes suivantes
- Mettre à
true
le paramètredrop_apps_db
du fichier~/geonature/config/settings.ini
. - Se placer dans le dossier
~/geonature/install/
avec la commande :cd ~/geonature/install/
- Lancer une session détachable car la manipulation peut être longue et une perte de connexion SSH possible :
screen -S install-db
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script d'installation de la base de données de GeoNature :
./install_db.sh
- Vérifier l’absence d'erreurs de l'installation dans le fichier
~/geonature/var/log/install_db.log
avec :vi ~/geonature/var/log/install_db.log
- ATTENTION : remettre à
false
le paramètredrop_apps_db
du fichier~/geonature/config/settings.ini
!
Ajout/Correction du référentiel géographique dans la base de données GeoNature
Via le fichier SQL du référentiel géographique de Flavia
- En local, télécharger la version du référentiel sans DEM. Si besoin, le DEM pourra être généré ultérieurement.
- Renommer le fichier ainsi :
mv 20210520_ref_geo_2.sql 2021-05-20_sinp_aura_ref_geo.sql
- Préparer le fichier :
- Remplacer le propriétaire du schéma d'origine :
sed -i 's/admingnpinv/geonatadmin/g' 2021-05-20_sinp_aura_ref_geo.sql
- Commenter toutes les lignes concernant les droits des utilisateurs d'origine :
sed -e '/atlaspinv/ s/^-* */-- /' -i 2021-05-20_sinp_aura_ref_geo.sql
- Insérer la sauvegarde du schéma
ref_geo
pré-existant :sed -i 's/CREATE SCHEMA ref_geo;/ALTER SCHEMA ref_geo RENAME TO ref_geo_saved;\nCREATE SCHEMA ref_geo;/ 2021-05-20_sinp_aura_ref_geo.sql
- Créer une archive
.tar.bz2
du fichier SQL pour diminuer sa taille (~1,3Go ⇒ ~260Mo) :tar jcvf ./2021-05-20_sinp_aura_ref_geo.tar.bz2 ./2021-05-20_sinp_aura_ref_geo.sql
- Uploader l'archive sur le dépôt SFTP :
sftp -oPort=<port-ssh-sftp-server> data@bkp-<region>-sinp:/flavia/ «< $'put ./2021-05-20_sinp_aura_ref_geo.tar.bz2'
- Se connecter au serveur "db" en tant qu'utilisateur geonat :
ssh geonat@db-aura-sinp
- Se placer dans le dossier ~/data/db-geonature/ :
cd ~/data/db-geonature
- Lancer le script :
cd bin/ ; ./initialize.sh -v
- Vérifier l’absence d'erreurs dans le fichier de log :
vi ../var/log/$(date +'%F')_dbgn.log
- Vérifier le contenu de la base de données.
Via le script "area" du dépôt "data"
Il est nécessaire d'ajouter dans le référentiel géographique de GeoNature le contour du territoire du SINP.
Pour ce faire, nous allons utiliser le script area
du dépôt "data" :
- Se connecter au serveur "db" en tant qu'utilisateur geonat :
ssh geonat@db-aura-sinp
- Se placer dans le dossier ~/data/area/ de l'utilisateur geonat :
cd ~/data/area
- Créer le fichier de configuration :
cp config/settings.sample.ini config/settings.ini
- Modifier le fichier settings.ini en fonction de l'installation locale :
vi config/settings.ini
- Lancer une session détachable :
screen -S import-area
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script :
cd bin/ ; ./initialize.sh -v
- Temps approximatif d'exécution : ~21s
- Vérifier l’absence d'erreurs dans le fichier de log :
vi ../var/log/$(date +'%F')_imports.log
- Vérifier le contenu de la base de données :
- le nombre de communes :
psql -h localhost -U geonatadmin -d geonature2db -c "SELECT COUNT(*) FROM ref_geo.l_areas AS la JOIN ref_geo.bib_areas_types AS bat ON (la.id_type = bat.id_type) WHERE type_code = 'COM';"
- Communes en AURA : 4 030
- le nombre de départements :
psql -h localhost -U geonatadmin -d geonature2db -c "SELECT COUNT(*) FROM ref_geo.l_areas AS la JOIN ref_geo.bib_areas_types AS bat ON (la.id_type = bat.id_type) WHERE type_code = 'DEP';"
- Départements en AURA : 12
Adaptation de la base de données de GeoNature (modules, vues...)
Il est nécessaire d'adapter la base de données de GeoNature au SINP AURA. Si vous avez corriger le référentiel géographique via le fichier SQL du référentiel géo de Flavia cette étape est déjà réalisée. Dans le cas contraire :
- Se connecter au serveur "db" en tant qu'utilisateur geonat :
ssh geonat@db-aura-sinp
- Se placer dans le dossier ~/data/db-geonature/ :
cd ~/data/db-geonature
- Lancer le script :
cd bin/ ; ./initialize.sh -v
- Vérifier l’absence d'erreurs dans le fichier de log :
vi ../var/log/$(date +'%F')_dbgn.log
- Vérifier le contenu de la base de données.
Il est aussi possible d’exécuter ces scripts SQL individuellement et manuellement :
- Se connecter au serveur "db" en tant qu'utilisateur geonat :
ssh geonat@db-aura-sinp
- Se placer dans le dossier ~/data/db-geonature :
cd ~/data/db-geonature/data/sql/
- Exécuter les scripts SQL suivant :
- Organiser le menu de gauche de GeoNature (nom et ordre des entrées) :
psql -h localhost -U geonatadmin -d geonature2db -f ./01_update_modules.sql
- Remplacement des vues d'export de la Synthèse :
psql -h localhost -U geonatadmin -d geonature2db -f ./02_replace_synthese_export_view.sql
- Corriger des problèmes en tant que super utilisateur :
sudo -u postgres -s psql -d geonature2db -f ./03_fix_as_superuser.sql
- Corriger des problèmes en tant que propriétaire de la base :
psql -h localhost -U geonatadmin -d geonature2db -f ./04_fix_as_user.sql
Création/Modification des utilisateurs/groupes par défaut (via UsersHub)
- Ajout d'un utilisateur "général" permetant un accès à l'API GeoNature (CMS ORB AURA par exemple).
- Se connecter à UsersHub en tant qu'admin : https://gestion.biodiversite-aura.fr/
- Cliquer sur le menu principal "Utilisateurs" et sur le bouton "Ajouter un utilisateur", remplir le formulaire ainsi :
- Cocher "Actif"
- Nom: GÉNÉRAL
- Prénom : Utilisateur
- Identifiant : user-general
- Organisme : ne rien sélectionner
- Mot de passe / Confirmation : voir Keepass.
- Groupe : Grp_utilisateurs
- Email : webmaster@biodiversite-aura.fr
- Commentaire : Utilisateur général permettant un accès à l'API GeoNature.
- Cliquer sur "Enregistrer"
- Modification de l'utilisateur "admin" :
- Se connecter à UsersHub en tant qu'admin : https://gestion.biodiversite-aura.fr/
- Cliquer sur le menu principal "Utilisateurs" et rechercher l'utilisateur dont l'identifiant est "admin".
- Changer son mot de passe en cliquant sur le bouton dont l'icone est une clé.
- Puis cliquer sur son bouton de modification (icône de crayon) et modifié l'utilisateur "admin" ainsi :
- Nom : GÉNÉRAL
- Prénom : Administrateur
- Organisme : aucun
- Groupes : laisser les 2 groupes afin d'y accéder dans l'interface "Permissions" de GeoNature. Lorsque le groupe "Grp_utilisateurs" aura des utilisateurs associés, il sera possible de mettre l'utilisateur "admin" seulement dans le groupe "Grp_admin"
- Email : adminsys@biodiversite-aura.fr
- Commentaire : Administrateur global.
- Suppression des utilisateurs de démo ayant les identifiants : agent, partenaire, pierre.paul, validateur
- Les rechercher et cliquer ensuite sur le bouton de suppression (icone rouge de poubelle)
- Modifier le groupe "Grp_en_poste" :
- Nom : Grp_utilisateurs
- Description : Tous les utilisateurs inscrits à Bioviv'AURA Expert par défaut.
- Ajouter le groupe "Grp_police_region" :
- Onglet "Groupe", cliquer sur "Ajouter un groupe" :
- Nom : Grp_police_region
- Description : Groupe d'utilisateur ayant des fonctions de police de l'environnement sur l'ensemble du territoire du SINP.
- Cliquer sur "Enregistrer"
- Onglet "Application", cliquer sur "Voir les membres" de "GeoNature"
- Cliquer sur "Ajouter un rôle pour l'application GeoNature"
- Rôle : Grp_police_region
- Profile : Lecteur
- Cliquer sur "Enregistrer"
- Onglet "Groupe", cliquer sur "Voir les membres"
- Ajouter les rôles (=utilisateurs) ayant des droits de police sur toute la région pour la Faune, Flore, Fonge…
Configuration des permissions
- Via GeoNature, module "Admin" > "Permissions", modifier les permissions par défaut comme suit :
- Pour le groupe "Grp_Utilisateurs"
- Pour le module "GeoNature" :
- Lire les données ⇒ Appartenance : "De tout le monde"
- Exporter les données ⇒ Appartenance : "De tout le monde"
- Pour le module "Métadonnées" :
- Lire les données ⇒ Appartenance : "De tout le monde"
- Pour le module "Synthese (= Observations)" :
- Lire les données ⇒ Appartenance : "De tout le monde" & Précision : "Floutée"
- Exporter les données ⇒ Appartenance : "De tout le monde" & Précision : "Floutée"
- Pour le groupe "Grp_admins" :
- Pour le module "Synthese (= Observations)" :
- Lire les données ⇒ Précision : "Exacte"
- Exporter les données ⇒ Précision : "Exacte"
- Pour le groupe "Grp_police_region"
- Pour le module "GeoNature" :
- Lire les données ⇒ Appartenance : "De tout le monde"
- Exporter les données ⇒ Appartenance : "De tout le monde"
- Pour le module "Métadonnées" :
- Lire les données ⇒ Appartenance : "De tout le monde"
- Pour le module "Synthese (= Observations)" :
- NOTES : l'héritage ne semble pas fonctionner dans ce cas précis ! C'est surement dû à la présence des filtres Géographique et Taxonomique.
- Objet "Observation privée" :
- Lire les données ⇒ Appartenance : "De tout le monde", Géographique : "Auvergne-Rhône-Alpes", Taxonomique : Biota [349525] & Précision : "Exacte"
- Exporter les données ⇒ Appartenance : "De tout le monde", Géographique : "Auvergne-Rhône-Alpes", Taxonomique : Biota [349525] & Précision : "Exacte"
- Objet "Observation sensible" :
- Lire les données ⇒ Appartenance : "De tout le monde", Géographique : "Auvergne-Rhône-Alpes", Taxonomique : Biota [349525] & Précision : "Exacte"
- Exporter les données ⇒ Appartenance : "De tout le monde", Géographique : "Auvergne-Rhône-Alpes", Taxonomique : Biota [349525] & Précision : "Exacte"
Import des données au format d'échange dans GeoNature module Synthèse
- Se connecter au serveur "db" en tant que geonat avec :
ssh geonat@db-aura-sinp
Import des données "cbnmc"
- Se placer dans le dossier ~/data/cbnmc/ de l'utilisateur geonat :
cd ~/data/cbnmc
- Lancer une session détachable :
screen -S import-cbnmc
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script :
cd bin/ ; ./import_initial.sh -v
- Temps approximatif d'exécution : ~1h45mn
- Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
- Fermer la session Screen
Import des données "cbna"
- Se placer dans le dossier ~/data/cbna/ de l'utilisateur geonat :
cd ~/data/cbna
- Lancer une session détachable :
screen -S import-cbna
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script :
cd bin/ ; ./import_initial.sh -v
- Temps approximatif d'exécution : ~1h45mn
- Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
- Fermer la session Screen
Import des données "lpo"
- Se placer dans le dossier ~/data/lpo/ de l'utilisateur geonat :
cd ~/data/lpo
- Lancer une session détachable :
screen -S import-lpo
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script :
cd bin/ ; ./import_initial.sh -v
- Temps approximatif d'exécution : ?
- Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
- Fermer la session Screen
Import des données "flavia"
- Se placer dans le dossier ~/data/flavia/ de l'utilisateur geonat :
cd ~/data/flavia
- Lancer une session détachable :
screen -S import-flavia
- Voir la documentation générale concernant les commandes à utiliser avec Screen pour quitter puis se reconnecter à une session.
- Lancer le script :
cd bin/ ; ./import_initial.sh -v
- Temps approximatif d'exécution : ?
- Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
- Fermer la session Screen
Importation des images de l'INPN
Suivre la démarche décrite dans la documentation de gestion des serveurs.
Mise à jour des données GeoNature Atlas
- Au préalable, ajouter une authentification HTTP au site de l'Atlas, le temps des tests avant mise en prod.
- Suivre la démarche décrite dans la documentation de gestion des serveurs
- Il existe aussi le script ~/data/db-atlas/data/sql/05_refresh_vm_data.sql. C'est l'équivalant de la fonction
refresh_materialized_view_data()
. Mais il permet de suivre l'avancé du rafraîchissement. Pour l'utiliser :psql -h localhost -U geonatadmin -d gnatlas -f ~/data/db-atlas/data/sql/05_refresh_vm_data.sql
- Notes : le paramètre
idle_in_transaction_session_timeout=310000
présent dans le fichier/etc/postgresql/12/main/conf.d/01_optimizing.conf
posait problème lors de la mise à jour des données de l'Atlas. Une des requêtes (liée à FDW) était annulée car dans l'état "idle in transaction" pendant plus de 5mn10s. Ce paramètre étant finalement inutile, il a été supprimé.
Corrections des données
- Passage du code nomenclatures des données de Flavia de 5 à 2 :
psql -h localhost -U geonatadmin -d geonature2db -v idSourceMin="18" -v idSourceMax="36" -f ~/data/db-geonature/data/sql/07_fix_flavia_data.sql
- Création de la table contenant les observations hors territoire :
psql -h localhost -U geonatadmin -d geonature2db -f ~/data/area-outside/data/sql/01_create_outside_all.sql
- Export vers des fichiers CSV des données hors-territoire par id source :
- CBNMC :
sudo -u postgres -s psql -h localhost -d geonature2db -v idSourceMin="1" -v idSourceMax="1" -v csvFilePath="/tmp/cbnmc.csv" -f ~/data/area-outside/data/sql/02_export_outside_data.sql
- CBNMA :
sudo -u postgres -s psql -h localhost -d geonature2db -v idSourceMin="2" -v idSourceMax="2" -v csvFilePath="/tmp/cbna.csv" -f ~/data/area-outside/data/sql/02_export_outside_data.sql
- FLAVIA :
sudo -u postgres -s psql -h localhost -d geonature2db -v idSourceMin="18" -v idSourceMax="36" -v csvFilePath="/tmp/flavia.csv" -f ~/data/area-outside/data/sql/02_export_outside_data.sql
- Vider les champs géometrie des observations hors territoire :
psql -h localhost -U geonatadmin -d geonature2db -f ~/data/area-outside/data/sql/03_fix_outside_geom.sql
- Export vers des fichiers CSV des données des CBNs dont la sensibilité a été corrigé :
- CBNMC :
sudo -u postgres -s psql -h localhost -d geonature2db -v csvFilePath="/tmp/fix_sensitivity_cbnmc.csv" -f ~/data/db-geonature/data/sql/08_export_cbn_sensitivity.sql
- CBNA :
sudo -u postgres -s psql -h localhost -d geonature2db -v csvFilePath="/tmp/fix_sensitivity_cbna.csv" -f ~/data/db-geonature/data/sql/08_export_cbn_sensitivity.sql
- Correction du niveau de sensibilité pour les taxons (Flore) sensible de la région AURA :
psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/09_fix_cbn_sensitivity.sql
- Activation des utilisateurs intégrés précédemment possédant un email et un identifiant afin qu'ils puissent demander un renouvellement de mot de passe :
psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/10_fix_users.sql
- Suppression manuelle des entrées de
utilisateurs.t_roles
possédant des identifiants et/ou email en doublon. Récapitulatifs des modifications stockées dans un tableur. - Activation des utilisateurs inactifs possédant un email afin qu'ils puissent demander un renouvellement de mot de passe :
psql -h localhost -U geonatadmin -d geonature2db -f ~/data/db-geonature/data/sql/12_fix_inactive_users.sql
- Fusion (puis suppression) des utilisateurs en doublon :
cd ~/data/db-geonature/bin/ ; ./merge_users.sh -v
. Utilise le script~/data/db-geonature/data/sql/13_delete_duplicate_user.sql
. Les anciensid_role
supprimés et leurs remplaçants sont présents dans le fichier de config (~/data/db-geonature/config/settings.default.ini
).