Open TheoLechemia opened 5 years ago
La transaction est annulée...
C'est pas justement un rollback ça ?
Je n'ai pas pris le temps de regarder le code mais pour éviter que ça remonte en erreur, il faudrait capturer l'erreur avec un RAISE
ou faire ça dans un try except
en Python.
J'ai essayé de le faire sans succès. Et si le rollback fonctionnait, on pourrait écrire dans la table d'erreurs, ce qui n'est pas le cas.
Je regarderai de plus près. Mais l'erreur levée n'est pas l'erreur d'écriture dont tu parles :
character varying pour une colonne qui attend des entiers, id observateur non présent en base etc...
IL y a bien un rollback :ERREUR: la transaction est annulée,...
mais ce qui n'est pas normal c'est justement qu'il leve une erreur.
Mais l'erreur levée n'est pas l'erreur d'écriture dont tu parles
Je n'ai pas mis la trace entière. La 1ère erreur qui est levée est du genre "impossible d'inserer un id_role non présent dans la table t_roles". Ensuite la web-api lève l'erreur que j'ai mise
SynchronizeError: ERREUR: la transaction est annulée ...
J'ai déjà eu ça dans GeoNature. Quand il y a une erreur SQL et que le rollback n'est pas (ou mal) effectué, toute les commandes exécutées ensuite ne passe pas. Ici l'écriture dans la table d'erreur n'est pas effectué. Et je suis presque totalement sût que c'est parce que le rollback ne marche pas.
Lorsqu'on envoie des données qui provoquent des erreur à l'écriture en base (character varying pour une colonne qui attend des entiers, id observateur non présent en base etc...), le rollback effectué ne semble pas fonctionner. L'erreur suivante est levée:
et le json n'est pas enregistré dans la table d'archivage des erreurs.