database:sinp-paca:import-donnees

Import des données SINP-PACA pour GeoNature et l'Atlas

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è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
    • 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 !
  • En local, sur votre machine, récupérer le dépôt Github "sinp-paca-data" : git clone git@github.com:cbn-alpin/sinp-paca-data.git
  • Suivre les éventuelles étapes indiquées dans les fichiers README.md (CBNA), README.md (CBNMED) et 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 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
  • 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
  • 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;

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
  • 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';
  • 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)
  • 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
  • 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
  • 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
  • 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

Suivre la démarche décrite dans la documentation de gestion des serveurs.

  • 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"
  • database/sinp-paca/import-donnees.txt
  • Dernière modification : 2022/03/25 11:46
  • de jpmilcent