Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Erreurs lors de l'import des données de sygal-ws #24

Open
ytennevin opened this issue Mar 9, 2023 · 6 comments
Open

Erreurs lors de l'import des données de sygal-ws #24

ytennevin opened this issue Mar 9, 2023 · 6 comments

Comments

@ytennevin
Copy link
Collaborator

ytennevin commented Mar 9, 2023

J'ai tenté de mettre à jour en 5.2.9
depuis notre version qui était en 4.0.2

Question préliminaire : a-t-on une documentation indiquant quelle est la dernière version stable ?
est-on supposé mettre à jour vers la dernière version disponible ?

Je constate des erreurs dans le log d'import venant du webservice.

Dans le doute, j'ai donc mis à jour en version 2.3.0 le webservice qui était en 1.3.7

La doc de sygal-ws mentionne deux urls possibles, une pour la v1 et une pour la v2, qui semblent fonctionner.
Par contre, le service=version ne semble pas fonctionner que ce soit en v1 ou v2.

Quand j'execute la synchronisation des données sur sygal, j'obtiens des erreurs (ou messages)

cat test-synchro.sh
#!/bin/bash
APP_DIR=/app-pg
ETAB=UTLN $APP_DIR/bin/run-import.sh 2>&1 > import-ws.log

./test-synchro.sh

  • /usr/bin/php /app-pg/public/index.php run import --name=structure-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=structure-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=etablissement-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=etablissement-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=ecole-doctorale-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=ecole-doctorale-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=unite-recherche-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=unite-recherche-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=individu-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=individu-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=doctorant-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=doctorant-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=these-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=these-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=these-annee-univ-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=these-annee-univ-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=role-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=role-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=acteur-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=acteur-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=origine-financement-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=origine-financement-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=financement-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=financement-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=titre-acces-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=titre-acces-UTLN
  • /usr/bin/php /app-pg/public/index.php run import --name=variable-UTLN
  • /usr/bin/php /app-pg/public/index.php run synchro --name=variable-UTLN

question annexe: le log contient des codes couleurs ansi, j'ignore comment les parametrer, s'il y a une doc quelque part ?

Je mets des extraits de import-ws.log que je met en PJ.
import-ws.log

######################## IMPORTS ########################
(...)

structure-UTLN

(...)
Une erreur a été rencontrée! La colonne de référence 'SOURCE_CODE' est introuvable dans les colonnes de la source
(...)
######################## SYNCHROS ########################
(...)
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_STRUCTURE
(...)

cela se repete pour avec le même type de messages d'erreur pour:
SRC_STRUCTURE
SRC_ETABLISSEMENT
SRC_ECOLE_DOCT
SRC_UNITE_RECH
SRC_INDIVIDU
SRC_DOCTORANT
SRC_THESE
SRC_THESE_ANNEE_UNIV
SRC_ROLE
SRC_ACTEUR
SRC_ORIGINE_FINANCEMENT
SRC_FINANCEMENT
SRC_TITRE_ACCES
SRC_VARIABLE
Donc j'en déduis que l'import ne se fait pas correctement et que la synchro non plus.

Est-ce que je peux avoir des pistes pour corriger cela ?
Je ne vois pas de spécifications de version dans la config du ws pour l'application sygal.
J'en déduis que c'est soit pris en charge soit non nécessaire (utilisation de la v1 de l'api?)

@bertrandgauthier
Copy link
Collaborator

bertrandgauthier commented Mar 10, 2023

Question préliminaire : a-t-on une documentation indiquant quelle est la dernière version stable ?
est-on supposé mettre à jour vers la dernière version disponible ?

Non, pas de doc/procédure pour informer d'une nouvelle version. Juste des tags poussés sur le dépôt.

Je constate des erreurs dans le log d'import venant du webservice.
Dans le doute, j'ai donc mis à jour en version 2.3.0 le webservice qui était en 1.3.7

T'as eu raison.

La doc de sygal-ws mentionne deux urls possibles, une pour la v1 et une pour la v2, qui semblent fonctionner.

Tu est passé par les scripts d'install de la v2 j'imagine, donc tu dois utiliser 'v2' dans les URL.

Par contre, le service=version ne semble pas fonctionner que ce soit en v1 ou v2.

La doc était incomplète, il faut ajouter /latest. Ex : https://localhost:8443/v2/version/latest

Quand j'execute la synchronisation des données sur sygal, j'obtiens des erreurs (ou messages)

Tu dois déjà t'assurer que les vues V_SYGAL_*_V2 remontent des données. Et que les tables SYGAL_*_V2 sont bien peuplées par ces mêmes données (cf. script CRONé).

Je ne vois pas de spécifications de version dans la config du ws pour l'application sygal.
J'en déduis que c'est soit pris en charge soit non nécessaire (utilisation de la v1 de l'api?)

J'ai complété un peu la doc à ce sujet, merci.
https://github.com/EsupPortail/esup-sygal/blob/master/doc/INSTALL.md#configuration-dacc%C3%A8s-au-web-service
Tu dois prendre la v2.

@ytennevin
Copy link
Collaborator Author

ytennevin commented Mar 10, 2023

Tu dois prendre la v2.

J'avais un problème sur l'url du service qui ne voulait pas prendre la v2.

peut-être un / manquant à la fin de la définition de l'url.
les logs m'indiquaient qu'il utilisait la racine malgré le parametrage.

Il ne me reste plus qu'une erreur:

### variable-UTLN ###
10/03/2023 19:13:14
[2023-03-10T19:13:14.756712+01:00] console.INFO: Lancement de la synchro variable-UTLN [] []
[2023-03-10T19:13:14.786968+01:00] console.INFO: Enregistrement des résultats d'import/synchro [] []
[2023-03-10T19:13:14.790662+01:00] console.INFO: Aucune instruction exécutée. [] []
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_VARIABLE

@ytennevin
Copy link
Collaborator Author

ytennevin commented Mar 11, 2023

Correction, il me restait trois erreurs:

Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_THESE_ANNEE_UNIV
--
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_TITRE_ACCES
--
Une erreur a été rencontrée!
Impossible de découvrir la liste des colonnes à partir des données sources suivantes car celles-ci sont vides : SRC_VARIABLE
--

A chaque fois, les tables en tmp_* et * ont l'air ok.

Il y a des données dans tmp_variable ; tmp_these_annee_univ et tmp_titre_acces et dans variable , these_annee_univ et titre_acces...

les imports correspondants ont l'air de passer, par contre, les synchros échouent...

Quant aux webservices, il y a des données dans SYGAL_THESE_ANNEE_UNIV_V2, SYGAL_VARIABLE et dans SYGAL_TITRE_ACCES.

J'ai fait des corrections sur les trois définitions des vues suivantes:

  • src_these_annee_univ
  • src_titre_acces
  • src_variable

A priori une erreur sur les conditions de jointure entre l'id de l'établissement et structure_id dans etablissement.

Note: Je ne comprend pas ce que cette double jointure (structure et etablissement) vient faire vu qu'on ne l'utilise pas dans la vue, du code obsolete non nettoyé ? par cohérence de construction avec d'autres vues ?

diff --git a/doc/release-notes/4.0.0/import.sql b/doc/release-notes/4.0.0/import.sql
index 0e12fc1d..4d685fd9 100644
--- a/doc/release-notes/4.0.0/import.sql
+++ b/doc/release-notes/4.0.0/import.sql
@@ -682,7 +682,7 @@ SELECT NULL::text AS id,
        tmp.annee_univ
 FROM tmp_these_annee_univ tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id
          JOIN these t ON t.source_code::text = tmp.these_id::text;
 
@@ -699,7 +699,7 @@ SELECT NULL::text AS id,
        tmp.code_pays_titre_acces
 FROM tmp_titre_acces tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id
          JOIN these t ON t.source_code::text = tmp.these_id::text;
 
@@ -724,5 +724,5 @@ SELECT NULL::text  AS id,
        tmp.date_fin_validite
 FROM tmp_variable tmp
          JOIN source src ON src.id = tmp.source_id
-         JOIN etablissement e ON e.structure_id = src.etablissement_id
+         JOIN etablissement e ON e.id = src.etablissement_id
          JOIN structure s ON s.id = e.structure_id;

@ytennevin
Copy link
Collaborator Author

ytennevin commented Mar 11, 2023

A priori, plus d'erreurs d'imports avec les corrections apportées.

  • url se terminant par 'v2/' - ne pas oublier le /
  • les trois corrections sur les vues. (commentaire précédent)

@bertrandgauthier
Copy link
Collaborator

J'ai fait des corrections sur les trois définitions des vues suivantes:
src_these_annee_univ
src_titre_acces
src_variable

Super, merci pour cette correction. Chez nous ça fonctionnait car e.structure_id === e.id !

A priori, plus d'erreurs d'imports avec les corrections apportées.
url se terminant par 'v2/' - ne pas oublier le /

La vérité est ailleurs car chez nous l'appel fonctionne bel et bien avec ces 2 formats d'URL :

@ytennevin
Copy link
Collaborator Author

ytennevin commented Mar 14, 2023

Sur l'url, c'est étrange car initialement ça ne fonctionnait pas, j'ai forcé un /v2/ dans le code, puis quelques temps plus tard ça s'est mis à interogger /v2/v2 en rendant obsolete ma correction, donc j'ai reverté mon hack dans le code et je touche plus...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants