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
database:sinp-aura:gn2pg [2024/02/20 14:10] – [Installer le Dashboard Gn2Pg] jpmilcentdatabase:sinp-aura:gn2pg [2026/03/05 13:43] (Version actuelle) – [Principes pour les données transmises] jpmilcent
Ligne 15: Ligne 15:
   * Afficher la table : ''gn2pg_lpo.data_json''   * Afficher la table : ''gn2pg_lpo.data_json''
   * Trier les données par ordre décroissant du champ ''update_ts''. La date la plus récente devrait s'afficher en premier   * Trier les données par ordre décroissant du champ ''update_ts''. La date la plus récente devrait s'afficher en premier
-  * Le champ "id_date" contient l'id_synthese à copier.+    * La date ''update_ts'' et la valeur du champ ''id_data'' du dernier enregistrement devrait correspondre au dernier log de Gn2Pg : ''2024-11-18 15:37:53,851 - DEBUG - store_postgresql:store_1_data - 43682513'' 
 +  * Le champ "id_data" contient l'id_synthese à copier.
   * Modifier ensuite le fichier ''~/data/gn2pg/config/lpo_config.toml'' sur le serveur hébergeant //Gn2Pg//.   * Modifier ensuite le fichier ''~/data/gn2pg/config/lpo_config.toml'' sur le serveur hébergeant //Gn2Pg//.
     * Ajouter/Modifier le paramètre ''filter_n_up_id_synthese'' et lui associer l'id synthese précédemment copié comme valeur.     * Ajouter/Modifier le paramètre ''filter_n_up_id_synthese'' et lui associer l'id synthese précédemment copié comme valeur.
Ligne 24: Ligne 25:
   * Nous gardons la contrainte d’unicité entre ''id_source'' et ''entité_source_pk_value''.   * Nous gardons la contrainte d’unicité entre ''id_source'' et ''entité_source_pk_value''.
     * Avec la fourniture du « vrai » identifiant produit par le producteur au niveau du champs additionnel sous la clé « ''source_id_data'' ».     * Avec la fourniture du « vrai » identifiant produit par le producteur au niveau du champs additionnel sous la clé « ''source_id_data'' ».
-  * Pas d’utilisation de l’UUID à ce stade car effets de bords qui pourront s’avérer problématiques selon les usages. +  * Jusqu'à la version v1.6.9, pas d’utilisation de l’UUID car effets de bords qui s’avérent problématiques selon les usages. Utilisation de l'UUID à partir de la version 1.8.0
-  * Les champs ''identifier'' et ''email'' des données sur les utilisateurs devront avoir la valeur ''NULL''. C'est important pour éviter tout conflit avec les utilisateurs créant des comptes directement depuis les interfaces. Pour éviter aussi des bugs au niveau de l'inscription et du renouvellement des mots de passe, il y a un index unique sur ces 2 champs. Enfin, même si cela crée des doublons, nous distinguerons les entrées dans la table ''t_roles'' pour les utilisateurs s'inscrivant au SINP vis à vis des entrées générées par GN2PG ou les scripts d'intégrations des données au format CSV. La fonction se chargeant d'insérer les utilisateurs dans la table ''t_roles'' de GeoNature a été modifiée pour insérer ''NULL'' dans le champ ''email'' et l'email dans le champ ''additional_data'' sous l'attribut ''gn2pg_data.email''.+  * Les champs ''identifier'' et ''email'' des données sur les utilisateurs devront avoir la valeur ''NULL''. C'est important pour éviter tout conflit avec les utilisateurs créant des comptes directement depuis les interfaces. Pour éviter aussi des bugs au niveau de l'inscription et du renouvellement des mots de passe, il y a un index unique sur ces 2 champs. Enfin, même si cela crée des doublons, nous distinguerons les entrées dans la table ''t_roles'' pour les utilisateurs s'inscrivant au SINP vis à vis des entrées générées par GN2PG ou les scripts d'intégrations des données au format CSV.
   * Le champ ''meta_validation_date'' de la synthèse du fournisseur utilisera l'alias ''validation_date'' soit : ''s.meta_validation_date AS validation_date''   * Le champ ''meta_validation_date'' de la synthèse du fournisseur utilisera l'alias ''validation_date'' soit : ''s.meta_validation_date AS validation_date''
   * Le champ ''additional_data'' de la synthèse du fournisseur utilisera l'alias ''donnees_additionnelles'' soit : ''s.additional_data::text AS donnees_additionnelles''   * Le champ ''additional_data'' de la synthèse du fournisseur utilisera l'alias ''donnees_additionnelles'' soit : ''s.additional_data::text AS donnees_additionnelles''
Ligne 32: Ligne 33:
     * « ''source_id_data'' »     * « ''source_id_data'' »
  
 +==== Modifications du code de to_synthese ====
 +  * Remplacement de la valeur du schéma ''gn2pg_import'' par ''gn2pg_flavia'' ou ''gn2pg_lpo''.
 +  * **La fonction se chargeant d'insérer les utilisateurs dans la table ''t_roles'' de GeoNature a été modifiée pour insérer ''NULL'' dans le champ ''email'' et l'email dans le champ ''additional_data'' sous l'attribut ''gn2pg_data.email''**.
 ===== Mise à jour de l'installation de Gn2Pg ===== ===== Mise à jour de l'installation de Gn2Pg =====
   * Sur le dépôt Github //sinp-<region>-data// :   * Sur le dépôt Github //sinp-<region>-data// :
Ligne 50: Ligne 54:
       * afficher la version actuellement installée de Pipenv via Pipx : ''pipx list''       * afficher la version actuellement installée de Pipenv via Pipx : ''pipx list''
       * mise à jour : ''pipx upgrade pipenv''       * mise à jour : ''pipx upgrade pipenv''
-      * vérifier la version de Pipenv : ''pipenv --version''+      * vérifier la version de Pipenv : ''%%pipenv --version%%''
     * Mettre à jour les dépendances des paquets Python : ''pipenv sync''     * Mettre à jour les dépendances des paquets Python : ''pipenv sync''
     * Se placer dans le dossier de gn2pg : '' cd ~/data/gn2pg/''      * Se placer dans le dossier de gn2pg : '' cd ~/data/gn2pg/'' 
Ligne 73: Ligne 77:
   * Pour chaque schéma abritant les tables de Gn2Pg (ou //source//), il faut cloner le dépôt Gn2Pg. Ex. pour le SINP AURA (nous avons 2 //sources// : flavia, lpo) :   * Pour chaque schéma abritant les tables de Gn2Pg (ou //source//), il faut cloner le dépôt Gn2Pg. Ex. pour le SINP AURA (nous avons 2 //sources// : flavia, lpo) :
     * Se placer dans le dossier ''gn2pg/'' avec : ''cd ~/www/gn2pg/''     * Se placer dans le dossier ''gn2pg/'' avec : ''cd ~/www/gn2pg/''
-    * Cloner une première fois le dépôt en tant que //lpo// avec : ''git clone https://github.com/lpoaura/GN2PG.git lpo'' +    * Cloner une première fois le dépôt en tant que //lpo// avec : ''%%git clone https://github.com/lpoaura/GN2PG.git lpo%%'' 
-    * Cloner une seconde fois le dépôt en tant que //flavia// avec  : ''git clone https://github.com/lpoaura/GN2PG.git flavia''+    * Cloner une seconde fois le dépôt en tant que //flavia// avec  : ''%%git clone https://github.com/lpoaura/GN2PG.git flavia%%''
   * Pour chaque source, nous allons réaliser manuellement les étapes présentes dans ''install/02_install_app.sh'' (pour les adapter à notre infrastructure) :    * Pour chaque source, nous allons réaliser manuellement les étapes présentes dans ''install/02_install_app.sh'' (pour les adapter à notre infrastructure) : 
     * se placer dans le dossier de la source : ''cd ~/www/gn2pg/<source>/''     * se placer dans le dossier de la source : ''cd ~/www/gn2pg/<source>/''
Ligne 243: Ligne 247:
 </html> </html>
    
 +</code>
 +
 +===== Requêtes SQL utiles pour Gn2Pg =====
 +<code sql>
 +-- Nbre de données récupérées depuis une date donnée
 +SELECT COUNT(*)
 +FROM gn2pg_lpo.data_json
 +WHERE update_ts > '2025-06-30';
 +
 +-- Nbre d'erreurs depuis une date donnée
 +SELECT COUNT(*)
 +FROM gn2pg_lpo.error_log
 +WHERE last_ts > '2025-06-22';
 +
 +-- Principaux types d'erreur différents
 +SELECT DISTINCT  split_part(error, e'\n', 1)
 +FROM gn2pg_lpo.error_log;
 </code> </code>
  • database/sinp-aura/gn2pg.1708438232.txt.gz
  • Dernière modification : 2024/02/20 14:10
  • de jpmilcent