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