====== Import des données SINP-PACA pour GeoNature et l'Atlas ======
===== 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 !
* [[serveurs:installation:web-srv:geonature-mise-a-jour#installation_d_une_branche_de_test_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ètre ''drop_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 [[serveurs:installation:divers#commande_screen|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 ''
* **ATTENTION** : remettre à ''false'' le paramètre ''drop_apps_db'' du fichier ''~/geonature/config/settings.ini'' !
===== 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 "[[https://github.com/cbn-alpin/sinp-paca-data|sinp-paca-data]]" : ''git clone git@github.com:cbn-alpin/sinp-paca-data.git''
* Suivre les éventuelles étapes indiquées dans les fichiers [[https://github.com/cbn-alpin/sinp-paca-data/blob/master/cbna/README.md|README.md (CBNA)]], [[https://github.com/cbn-alpin/sinp-paca-data/blob/master/cbnmed/README.md|README.md (CBNMED)]] et [[https://github.com/cbn-alpin/sinp-paca-data/blob/master/cenpaca/README.md|README.md (CEN-PACA)]]
* **ATTENTION** : sur le serveur, sauvegarder le dossier "data" : voir ci-dessous
* Se placer à la racine du dossier //sinp-paca-data//
* Transférer les scripts : '' rsync -av --copy-unsafe-links --exclude var --exclude .git --exclude .gitattributes --exclude .gitmodules --exclude .editorconfig --exclude .vscode --exclude .gitignore --exclude settings.ini --exclude "data/raw/*" --exclude venv --exclude .venv --exclude "import-parser/data/*" ./ geonat@db-paca-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 : //area//, //cbna-cbnmed//, //cenpaca// et //shared//
* Préparer l'environnement du script //import-parser// en suivant les indications du fichier [[https://github.com/cbn-alpin/geonature-import-parser/|README.md (import-parser)]]
* **Notes** : il est nécessaire de redonner les droits d'execution à 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 avec '' chmod 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-paca-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 ''
===== Modifier les vues d'exports =====
* Il est nécessaire d'ajouter les colonnes : ''id_nomenclature_sensitivity'' et ''id_nomenclature_diffusion_level''
* Nous gardons dans la vue uniquement les colonnes exportées.
* Vue '' gn_synthese.v_synthese_for_export '' :
CREATE OR REPLACE VIEW gn_synthese.v_synthese_for_export
AS SELECT s.id_synthese,
s.unique_id_sinp AS uuid_perm_sinp,
s.unique_id_sinp_grp AS uuid_perm_grp_sinp,
af.acquisition_framework_name AS ca_nom,
d.id_dataset AS jdd_id,
d.unique_dataset_id AS jdd_uuid,
d.dataset_name AS jdd_nom,
n21.label_default AS niveau_validation,
s.validator AS validateur,
s.observers AS observateurs,
t.cd_ref,
t.nom_valide,
s.count_min AS nombre_min,
s.count_max AS nombre_max,
s.date_min::date AS date_debut,
s.date_max::date AS date_fin,
st_asgeojson(s.the_geom_4326) AS geojson_4326,
st_asgeojson(s.the_geom_local) AS geojson_local,
s."precision" AS precision_geographique,
n9.label_default AS niveau_precision_diffusion,
s.id_digitiser,
s.id_nomenclature_sensitivity,
s.id_nomenclature_diffusion_level
FROM gn_synthese.synthese s
JOIN taxonomie.taxref t ON t.cd_nom = s.cd_nom
JOIN gn_meta.t_datasets d ON d.id_dataset = s.id_dataset
JOIN gn_meta.t_acquisition_frameworks af ON d.id_acquisition_framework = af.id_acquisition_framework
LEFT JOIN ref_nomenclatures.t_nomenclatures n9 ON s.id_nomenclature_diffusion_level = n9.id_nomenclature
LEFT JOIN ref_nomenclatures.t_nomenclatures n21 ON s.id_nomenclature_valid_status = n21.id_nomenclature ;
* Vue '' gn_synthese.v_synthese_taxon_for_export_view '' :
CREATE OR REPLACE VIEW gn_synthese.v_synthese_taxon_for_export_view
AS WITH s AS (SELECT DISTINCT cd_nom FROM gn_synthese.synthese )
SELECT
ref.nom_valide,
ref.cd_ref,
ref.nom_vern,
ref.group1_inpn,
ref.group2_inpn,
ref.regne,
ref.phylum,
ref.classe,
ref.ordre,
ref.famille,
ref.id_rang
FROM s
JOIN taxonomie.taxref t ON s.cd_nom = t.cd_nom
JOIN taxonomie.taxref ref ON t.cd_ref = ref.cd_nom;
===== Ajout/Correction du référentiel géographique dans la base de données GeoNature =====
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'admin : ''ssh geonat@db-paca-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 [[serveurs:installation:divers#commande_screen|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 : ~3h
* 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, par exemple le nombre de communes : 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';
===== Corrections diverses sur la base =====
* Corriger les droits de certaines tables attribuée //postgres// :
* Se connecter à //psql// : ''sudo -u postgres psql''
* Sélectionner la base //geonature2db// avec : ''\c geonature2db''
* Exécuter les requêtes suivantes :
ALTER TABLE taxonomie.taxref_bdc_statut OWNER TO geonatadmin;
ALTER TABLE taxonomie.taxref_bdc_statut_type OWNER TO geonatadmin;
* Quitter //psql// avec : ''\q''
* Ajout d'un index sur le champs ''observers'' de la table ''gn_synthese.synthese'' :
CREATE INDEX i_synthese_observers ON gn_synthese.synthese USING btree (observers)
===== Import des données "cen-paca" au format d'échange dans GeoNature module Synthèse =====
* Se connecter au serveur "db" en tant qu'admin : ''ssh geonat@db-paca-sinp''
* Se placer dans le dossier // ~/data/cenpaca/ // de l'utilisateur //geonat// : ''cd ~/data/cenpaca''
* 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-cenpaca''
* Voir [[serveurs:installation:divers#commande_screen|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 : ~2h20
* Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
===== Import des données "cbna-cbnmed" au format d'échange dans GeoNature module Synthèse =====
* Se connecter au serveur "db" en tant qu'admin : ''ssh geonat@db-paca-sinp''
* Se placer dans le dossier // ~/data/cbna-cbnmed/ // de l'utilisateur //geonat// : ''cd ~/data/cbna-cbnmed''
* 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-cbna-cbnmed''
* Voir [[serveurs:installation:divers#commande_screen|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 : ~1h45
* Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données
===== Importation des images de l'INPN =====
Suivre la démarche décrite dans [[serveurs:installation:web-srv:geonature-atlas-mise-a-jour#procedure_d_import_des_images_de_l_inpn|la documentation de gestion des serveurs]].
===== Mise à jour des données GeoNature Atlas =====
* **Ressources** : https://github.com/PnX-SI/GeoNature-atlas/blob/master/docs/vues_materialisees_maj.rst
* Au préalable, ajouter une authentification HTTP au site nature.silene.eu, le temps des tests avant mise en prod.
* Suivre la démarche décrite dans [[serveurs:installation:web-srv:geonature-atlas-mise-a-jour#procedure_de_mise_a_jour_des_donnees|la documentation de gestion des serveurs]]
===== Configuration des permissions =====
* Via UsersHub, changer le nom du groupe "Grp_en_poste" pour "Grp_utilisateurs"
* 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**"