====== Scripts d'intégration - Pré-Production GeoNature ======
===== Mise en place des scripts =====
* Configurer le script //import_parser// en suivant la doc d'installation présente dans le fichier README.md : ''vi import-parser/README.md''
* Modifier le fichier de configuration partagé : ''vi shared/config/settings.ini''
===== Configuration machine locale =====
* Ajouter une ligne dans son fichier ///etc/hosts// contenant l'alias du serveur et son IP. Ex. : ''57.128.162.43 bkp-paca-sinp''
* Ajouter une entrée dans son fichier //~/.ssh/config// pour indiquer le port SSH spécifique au serveur hébergeant la pré-prod :
Host bkp-paca-sinp
Port
* Ajouter sa clé publique dans le fichier //~/.ssh/authorized_keys// de l'utilisateur hébergeant la pré-prod. Ex : ssh-copy-id geonat@bkp-paca-sinp
===== Procédure d'utilisation des scripts d'intégration =====
* Au préalable, il est nécessaire de préparer un fichier //.tar.bz2// au format : ''_sinp_paca_'' contenant les fichiers csv et ini. Ex. : ''2023-10-04_sinp_paca_cenpaca/''
* Créer en local, un dossier au format ''_sinp_paca_/''
* Placer dans le dossier l'ensemble des fichiers //.csv// [[database:import-formats|au format d'échange]] à transmettre ainsi qu'un fichier //meta_archive.ini//
* Ouvrir un terminal, placez vous dans le dossier créé et utilisez la commande suivante pour créer l'archive : tar ../2023-10-04_sinp_paca_cenpaca.tar.bz2 .
(attention à la présence du point final)
* Utiliser ensuite Filezilla (ou autre logiciel de SFTP) pour stocker le fichier //.tar.bz2// sur l'espace SFTP du SINP dans le dossier correspondant à l'organisme concerné.
* Se connecter sur le serveur de pré-production avec l'utilisateur //geonat// : ssh geonat@bkp--sinp
* Se rendre dans le dossier correspondant à l'organisme pour lequel nous voulons intégrer les données. Ex. CEN PACA : cd ~/data/cenpaca/
* Éditer le fichier config/settings.ini pour y modifier la date de l'archive à prendre en compte : vi config/settings.ini
* Modifier le paramètre //<...>_import_date// pour la nouvelle date. Ex. : ''cp_import_date="2023-10-04"''
* Vider le dossier data/raw/ de tous les fichiers .csv et .ini d'une éventuelle intégration précédente : rm data/raw/*.{csv,ini}
* Lancer le script d'intégration : ./bin/import_update.sh -v
* L'option ''-v'' permet de rendre le script plus bavard.
* Pour afficher l'aide du script utiliser : ./bin/import_update.sh -h
* Le script se charge de :
* télécharger depuis le dépôt SFTP l'archive et la place dans le dossier ''data/raw/''
* décompresser l'archive dans le dossier ''data/raw/''
* intégrer les données (ajout, modification, suppression) [[database:import-formats#principe_de_la_procedure_de_mise_a_jour| dans l'ordre indiqué dans la format d'échange]] à l'aide de script SQL.
* Les logs du script s'affiche à l'écran mais sont aussi stocké dans un fichier //.log// au format ''_imports.log'' présent dans : ''var/log/''
* Surveiller l'exécution du script et l'apparition éventuelle d'un ROLLBACK. Dans ce cas là, arrêter l'execution du script à l'aide de CTRL+C et consulter les logs pour déterminer l'origine du problème. Il est souvent nécessaire de corriger les fichiers csv fournis pour corriger le problème.
* Pour relancer le script suite à sa première exécution, vous pouvez utiliser la commande suivante qui se charge de supprimer les fichiers //*_rti.csv// préalablement créés et de réinitialiser l'affichage de la console : reset; rm -f data/raw/*_rti.csv; ./bin/import_update.sh -v