====== 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**"