serveurs:sinp-paca:import-donnees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurs:sinp-paca:import-donnees [2021/03/01 18:04] – [Ré-initialisation de la base de données GeoNature] jpmilcentserveurs:sinp-paca:import-donnees [2021/03/04 09:51] (Version actuelle) – supprimée jpmilcent
Ligne 1: Ligne 1:
-====== Import des données SINP-PACA pour GeoNature et l'Atlas ====== 
  
-===== Ré-initialisation de la base de données GeoNature ===== 
-<note warning> Cette manipulation est dangereuse car elle supprime tout le contenu de la base de données de GeoNature !</note> 
-  * [[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'' 
-    * Lancer le script d'installation de la base de données de GeoNature : ''./install_db.sh'' 
-    * Voir ci-dessus les commandes à utiliser pour quitter puis se reconnecter à une session 
-    * 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" ===== 
-  * 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)]] 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 : ''<nowiki> rsync -av --copy-unsafe-links --exclude var --exclude .git --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 </nowiki>'' 
-    * Supprimer l'option ''<nowiki> --dry-run </nowiki>'' 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/sinp-paca-data/blob/master/import-parser/README.md|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" ===== 
-  * 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 '' 
-===== Commande Screen ===== 
-  * Le script d'import peut prendre plusieurs heures pour s'éxecuter. Afin de pouvoir revenir sur l'état du script, nous allons utiliser la commande ''screen''. Elle permet de créer un session qui peut être récupéré à tout moment. 
-  * Principe générale d'utilisation de ''Screen'' : 
-    - Pour lancer une nouvelle session : ''screen -S <nom-de-la-session>'' 
-    - Lancer la commande/script désiré 
-    - Utiliser les séquences de touches suivante pour se détacher de la session : ''Ctrl-a + Ctrl-d''  
-    - Pour voir la liste des sessions en cours : ''screen -ls'' 
-      - Le numéro de session correspond au nombre présent devant ".pts-0" 
-    - Pour se connecter à nouveau à une session : ''screen -r <numero-session>'' 
-  * Autres commandes : 
-    * Détacher une session toujours attaché pour s'y attacher à nouveau : ''screen -D <numero-session>.<nom-session>'' 
-    * Quitter et supprimer une session en cours : ''CTRL+a'' et '':quit'' 
- 
-===== 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'' 
-  * Lancer le script : ''cd bin/ ; ./initialize.sh -v '' 
-  * Voir ci-dessus les commandes à utiliser pour quitter puis se reconnecter à une session 
-  * Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données 
- 
-===== 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'' 
-  * Lancer le script : ''cd bin/ ; ./import_initial.sh -v '' 
-  * Voir ci-dessus les commandes à utiliser pour quitter puis se reconnecter à une session 
-  * 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'' 
-  * Lancer le script : ''cd bin/ ; ./import_initial.sh -v '' 
-  * Voir ci-dessus les commandes à utiliser pour quitter puis se reconnecter à une session 
-  * Vérifier l’absence d'erreurs dans la session et vérifier le contenu de la base de données 
-===== 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. 
-  * Se connecter au serveur : ''ssh admin@<sinp-db>'' 
-  * Lancer une session détachable : ''screen -S update-atlas'' 
-  * Lancer la commande : ''psql'' 
-    * Sélectionner la base de l'atlas : ''\c gnatlas'' 
-    * Exécuter les requête suivante suivant le besoin 
-      * Pour mettre à jour uniquement les données d'observation (table //synthese//) : ''SELECT atlas.refresh_materialized_view_data() ;'' 
-      * Si le territoire du SINP à changé et qu'il faut remettre à jour le référentiel géographique : '' SELECT atlas.refresh_materialized_view_ref_geo() '' 
- 
-===== Exécution du script d'import des images de l'INPN ===== 
-  * Se connecter sur le serveur : ''ssh geonat@sinp-<region>-web'' 
-  * Se placer dans le dossier du script dans TaxHub : ''cd ~/www/taxhub/data/scripts/import_inpn_media '' 
-  * Créer un environnement virtuel : '' python3 -m venv venv '' 
-  * Activer l'environnement virtuel : '' source venv/bin/activate '' 
-  * Redonner les droits d’exécution à GCC pour tout le monde si l'on veut pouvoir installer correctement les paquets Python dans le venv : '' sudo chmod o+x /usr/bin/gcc '' 
-  * Installer les paquets suivant : '' pip install psycopg2 requests '' 
-  * Retirer les droits d’exécution à GCC pour tout le monde :  '' sudo chmod o-x /usr/bin/gcc ''. 
-  * Créer le fichier de configuration : '' cp config.py.sample config.py '' 
-    * Modifier les paramètres : 
-      * ''<nowiki> SQLALCHEMY_DATABASE_URI = "postgresql://geonatadmin:<mot-de-passe>@10.0.1.10:5432/geonature2db" </nowiki>''  
-      * ''<nowiki> QUERY_SELECT_CDREF = """SELECT DISTINCT cd_ref FROM taxonomie.bib_noms ORDER BY cd_ref LIMIT 100""" </nowiki>'' : supprimer le '' LIMIT 100 '' une fois un premier test effectué 
-  * Lancer le script : '' python import_inpn_media.py '' 
-  * Si tout c'est bien passé, désactiver l'environnement virtuel : '' deactivate '' 
-  * Le script ajoute les photos en tant que "secondaire" pour désigner celle avec le plus petit id_media (= au hasard) comme "principale", utiliser la requête :<code sql> 
-WITH first_media AS ( 
- SELECT MIN(id_media) AS first_id_media_founded, cd_ref  
- FROM taxonomie.t_medias 
- GROUP BY cd_ref 
-) 
-UPDATE taxonomie.t_medias AS tm  
- SET id_type = 1 
- FROM first_media AS fm 
- WHERE tm.id_media = fm.first_id_media_founded 
- AND tm.cd_ref = fm.cd_ref ; 
-</code> 
-  * Pour afficher les images sur l'Atlas, il est nécessaire de rafraichir les données des vues matérialisées //atlas.vm_medias// et //atlas.vm_taxons_plus_observes// : <code sql> 
-REFRESH MATERIALIZED VIEW atlas.vm_medias WITH DATA ; 
-REFRESH MATERIALIZED VIEW atlas.vm_taxons_plus_observes WITH DATA ; 
-</code> 
  • serveurs/sinp-paca/import-donnees.1614621881.txt.gz
  • Dernière modification : 2021/03/01 18:04
  • de jpmilcent