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

Problème pour mettre à jour taxhub v1.7.3 vers v1.8.0 #283

Closed
MathieuLagarde opened this issue Sep 17, 2021 · 11 comments
Closed

Problème pour mettre à jour taxhub v1.7.3 vers v1.8.0 #283

MathieuLagarde opened this issue Sep 17, 2021 · 11 comments

Comments

@MathieuLagarde
Copy link

Bonjour,
Je souhaite effectuer la mise à jour de Taxhub. J'ai pu passer de la version 1.7.0 à la version 1.7.3 sans problème (via les versions intermédiaires).
Le passage à la version 1.8.0 me pose par contre quelques problèmes, et notamment la mise à jour du TAXREF.
En suivant la procédure (https://github.com/PnX-SI/TaxHub/tree/master/data/scripts/update_taxref), je bloque au moment de lancer le script avec la commande ./import_taxref_v13_data.sh.
J'ai notamment cette ligne d'erreur qui est signalée:
psql:scripts/1.1_taxref_changes_detections.sql:43: ERREUR: le tableau ne doit pas contenir de valeurs NULL

et qui semble résulter de la définition de grappe_init:

	SELECT b.cd_ref , sort(array_agg(cd_nom)) as array_agg, count(DISTINCT cd_nom)
	FROM  taxonomie.bib_noms b
	WHERE NOT deleted = true
	GROUP BY cd_ref

qui renvoie :

ERROR: ERREUR:  le tableau ne doit pas contenir de valeurs NULL
SQL state: 22004

Dans la table taxonomie.bib_noms, j'ai deux valeurs NULL dans le champ cd_nom pour un même cd_ref "disparu" entre taxref v11 et v13 (cf. liste_cd_nom_disparus_bib_noms.csv).

A la suite de ce message, j'en ai une floppée d'autres indiquant toutes:
ERREUR: la relation « tmp_taxref_changes.comp_grap » n'existe pas

Comment puis-résoudre ce problème ?
Merci pour votre aide.

@amandine-sahl
Copy link
Contributor

Bonjour,

Pourriez vous m'indiquer les cd_noms qui ont disparus. A priori, ils n'ont pas de cd_nom de remplacement pour deux raisons potentielles : soit le taxon n'aurait jamais du être présent, soit le taxon à subit une révision taxonomique qui nécessite de revenir dans les données.

Pour résoudre le problème il faut à mon avis pré-corriger les données en supprimant les cd_noms qui disparaissent sans cd_nom de remplacement

@camillemonchicourt
Copy link
Member

La mise à jour de TaxHub 1.7 à 1.8 et la migration de Taxref en v14 sont 2 choses distincts.
Votre soucis vient de la mise à jour de TaxHub ou de la migration de Taxref ? De quelle version à quelle version ?
Peut-être en lien avec #271 ?

@MathieuLagarde
Copy link
Author

@amandine-sahl
voici le résultat des cd_nom disparus:

cd_nom	nom_cite	nb	plus_recente_diffusion	cd_nom_remplacement	cd_raison_suppression
104306	Juncus ambiguus Guss.	1	9.0	771713	1
116744	Quercus petraea Liebl.	2	9.0	521658	1
159572	Bryonia dioica Jacq.	11	9.0		2

Pour le dernier, il n'y a pas de cd_nom_remplacement, mais en recherchant, 86828 correspond.
Je n'ai pas trouvé la signification des valeurs cd_raison_suppression.
J'ai effectué un update de la table gn_synthese.synthese sur le cd_nom, mais ça n'a rien changé semble-t-il.

@MathieuLagarde
Copy link
Author

@camillemonchicourt
Je n'avais pas vu ce post fermé. Je regarde de plus près.

@amandine-sahl
Copy link
Contributor

La signification des cd_raison_supression est :

cd_raison_suppression raison
1 cd_nom de remplacement à utiliser.
2 cd_nom non diffusé mais toujours existant : taxon diffusé à tort, non présent et jamais mentionné en France
3 cd_nom à supprimer : enregistrement ambigü à revoir dans les données.

Pour le cas 2 il faut modifier les données dans la synthèse et supprimer l'enregistrement de bib_noms Soit manuellement dans la table, soit en utilisant le script 2.1_taxref_changes_corrections_pre_detections.sql

@MathieuLagarde
Copy link
Author

Merci Amandine.
J'ai modifié la table synthese pour les 3 cd_nom concernés.
Puis j'ai supprimé les enregistrements de la table bib_nom pour lesquels un cd_nom était nul.

J'ai également supprimé une ligne concernant le cd_nom 60615 (le Lynx, donnée présente par défault dans occtax probablement, car non présent en Bretagne) dans la table gn_sensitivity.t_sensitivity_rules, en lien avec les indications présentes dans /tmp/liste_donnees_cd_nom_manquant.csv

Puis, en ré-exécutant le script ./apply_changes.sh 13

Detection des changements
ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : SELECT count(*) FROM tmp_taxref_changes.comp_grap WHERE acti...
                               ^
./apply_changes.sh: ligne 25 : [: -gt : opérateur unaire attendu
Detection conflits synthese si elle existe
ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 4 :             JOIN tmp_taxref_changes.comp_grap c
                           ^
./apply_changes.sh: ligne 66 : [: -gt : opérateur unaire attendu
Export des bilans réalisés dans tmp
Import taxref v13
Mise à jour des statuts de protections
  Restauration des contraintes de clés étrangères spécifiques à ma base réalisée
Mise à jour des vues matérialisées

Le problème de la relation « tmp_taxref_changes.comp_grap » inexistant revient, et je ne sais pas comment résoudre ce point, qui semble bloquant.

@amandine-sahl
Copy link
Contributor

Pourriez vous m'indiquer le contenu du fichier var/log/updatetaxrefv13/apply_changes.log ?

@MathieuLagarde
Copy link
Author

Le voici:

psql:../../generic_drop_and_restore_deps_views.sql:24: NOTICE:  la fonction public.deps_restore_dependencies(pg_catalog.varchar,pg_catalog.varchar) n'existe pas, poursuite du traitement
DROP FUNCTION
DROP FUNCTION
psql:../../generic_drop_and_restore_deps_views.sql:36: NOTICE:  la fonction public.deps_save_and_drop_dependencies(pg_catalog.varchar,pg_catalog.varchar) n'existe pas, poursuite du traitement
DROP FUNCTION
psql:../../generic_drop_and_restore_deps_views.sql:41: NOTICE:  la fonction public.deps_save_and_drop_dependencies(name,name) n'existe pas, poursuite du traitement
DROP FUNCTION
DROP FUNCTION
DROP TABLE
CREATE TABLE
GRANT
CREATE FUNCTION
CREATE FUNCTION
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:4: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap SET grappe_change = NULL...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:6: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap SET grappe_change = 'no ...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:10: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap SET grappe_change = 'cas...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:15: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap SET grappe_change =  COA...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:26: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap SET grappe_change =  COA...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:34: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET grappe_change = CO...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:39: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET cas = 'update cd_r...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:42: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET cas = 'merge'
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:44: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET cas = 'merge'
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:47: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET cas = 'split'
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:50: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET cas = 'split and m...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:56: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE  tmp_taxref_changes.comp_grap c SET action = NULL;
                  ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:59: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE  tmp_taxref_changes.comp_grap c SET action = 'no chan...
                  ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:62: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE  tmp_taxref_changes.comp_grap c SET action = 'Update ...
                  ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:67: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET action = 'Keep att...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:84: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET action = 'Loose at...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:109: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 4 :  JOIN tmp_taxref_changes.comp_grap c
                ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:112: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET action = 'Merge at...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:117: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET action = 'Keep att...
                 ^
psql:scripts/1.2_taxref_changes_detections_cas_actions.sql:134: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 1 : UPDATE tmp_taxref_changes.comp_grap c SET action = 'Loose at...
                 ^
DROP FUNCTION
CREATE FUNCTION
 deps_test_fk_dependencies_cd_nom 
----------------------------------
 
(1 ligne)

psql:scripts/1.3_taxref_changes_detections_export.sql:13: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 3 :  FROM tmp_taxref_changes.comp_grap c
                ^
psql:scripts/1.3_taxref_changes_detections_export.sql:22: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 3 :  FROM tmp_taxref_changes.comp_grap
                ^
INSERT 0 0
psql:scripts/3.1_taxref_change_db_structure_v13.sql:26: NOTICE:  column sous_famille already exists in taxref.
DO
psql:scripts/3.1_taxref_change_db_structure_v13.sql:36: NOTICE:  column tribu already exists in taxref.
DO
psql:scripts/3.1_taxref_change_db_structure_v13.sql:46: NOTICE:  column url already exists in taxref.
DO
psql:scripts/3.1_taxref_change_db_structure_v13.sql:49: ERREUR:  ne peut pas convertir le type jsonb en boolean
LIGNE 1 : SELECT (p_options->'verbose')::bool
                                       ^
REQUÊTE : SELECT (p_options->'verbose')::bool
CONTEXTE : fonction PL/pgsql deps_save_and_drop_dependencies(name,name,jsonb), ligne 17 à affectation
psql:scripts/3.1_taxref_change_db_structure_v13.sql:50: ERREUR:  ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle
DÉTAIL : règle _RETURN active vue taxonomie.v_taxref_hierarchie_bibtaxons dépend de la colonne « nom_valide »
psql:scripts/3.1_taxref_change_db_structure_v13.sql:51: ERREUR:  ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle
DÉTAIL : règle _RETURN active vue taxonomie.v_taxref_hierarchie_bibtaxons dépend de la colonne « nom_vern »
psql:scripts/3.1_taxref_change_db_structure_v13.sql:52: ERREUR:  ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle
DÉTAIL : règle _RETURN active vue taxonomie.v_taxref_hierarchie_bibtaxons dépend de la colonne « lb_auteur »
psql:scripts/3.1_taxref_change_db_structure_v13.sql:53: ERREUR:  ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle
DÉTAIL : règle _RETURN active vue taxonomie.v_taxref_hierarchie_bibtaxons dépend de la colonne « nom_complet »
psql:scripts/3.1_taxref_change_db_structure_v13.sql:54: ERREUR:  ne peut pas modifier le type d'une colonne utilisée dans une vue ou une règle
DÉTAIL : règle _RETURN active vue taxonomie.v_taxref_hierarchie_bibtaxons dépend de la colonne « nom_complet_html »
psql:scripts/3.1_taxref_change_db_structure_v13.sql:55: ERREUR:  ne peut pas convertir le type jsonb en boolean
LIGNE 1 : SELECT (p_options->'verbose')::bool
                                       ^
REQUÊTE : SELECT (p_options->'verbose')::bool
CONTEXTE : fonction PL/pgsql deps_restore_dependencies(name,name,jsonb), ligne 12 à affectation
CREATE VIEW
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:15: NOTICE:  la contrainte « taxref_protection_especes_cd_nom_fkey » de la relation « taxref_protection_especes » n'existe pas, ignore
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:17: NOTICE:  la contrainte « check_cd_ref_is_ref » de la relation « t_medias » n'existe pas, ignore
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:18: NOTICE:  la contrainte « check_is_valid_cd_ref » de la relation « bib_noms » n'existe pas, ignore
ALTER TABLE
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:38: ERREUR:  valeur trop longue pour le type character varying(250)
psql:scripts/3.2_alter_taxref_data.sql:54: ERREUR:  valeur trop longue pour le type character varying(250)
DELETE 0
ALTER TABLE
ALTER TABLE
UPDATE 0
DELETE 0
DELETE 0
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
UPDATE 1561
DELETE 0
psql:scripts/3.2_alter_taxref_data.sql:160: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 3 : FROM tmp_taxref_changes.comp_grap cg
               ^
DROP TABLE
SELECT 739
DROP TABLE
SELECT 7
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:184: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:189: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:195: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:200: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
psql:scripts/3.2_alter_taxref_data.sql:218: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 10 : FROM tmp_taxref_changes.comp_grap cg
                ^
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:229: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 3 : FROM tmp_taxref_changes.comp_grap cg
               ^
ALTER TABLE
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:238: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:259: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 4 :     JOIN tmp_taxref_changes.comp_grap cg
                   ^
psql:scripts/3.2_alter_taxref_data.sql:263: ERREUR:  la relation « tmp_taxref_changes.comp_grap » n'existe pas
LIGNE 2 : FROM tmp_taxref_changes.comp_grap
               ^
UPDATE 0
UPDATE 0
ALTER TABLE
ALTER TABLE
psql:scripts/3.2_alter_taxref_data.sql:293: NOTICE:  la contrainte « check_is_cd_ref » de la relation « cor_taxon_attribut » n'existe pas, ignore
ALTER TABLE
TRUNCATE TABLE
INSERT 0 6853
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW
REFRESH MATERIALIZED VIEW

@amandine-sahl
Copy link
Contributor

Effectivement la création de la table n'est réalisée que par le script d'import import_taxref_v13_data.sh ce qui pose problème.

J'ai fait une petite modification en mode developement qui devrait résoudre le problème.

@MathieuLagarde
Copy link
Author

MathieuLagarde commented Sep 21, 2021

Merci Amandine.
J'ai pu faire tourner le script, qui me renvoie désormais ce message:


Detection des changements
ERREUR:  la colonne « cd_nom_remplacement » n'existe pas
LIGNE 1 : ...M taxonomie.bib_noms bn WHERE deleted IS TRUE AND cd_nom_rem...
                                                               ^
./apply_changes.sh: ligne 36 : [: -gt : opérateur unaire attendu
Detection conflits synthese si elle existe
Export des bilans réalisés dans tmp
Import taxref v13
Mise à jour des statuts de protections
  Restauration des contraintes de clés étrangères spécifiques à ma base réalisée
Mise à jour des vues matérialisées

@amandine-sahl
Copy link
Contributor

Toute la partie qui concerne les cd_nom manquants est dans import_taxref_v13_data.sh et malheuresement le script 5_clean_db.sql supprime ces colonnes ainsi que la table des cd_noms disparus.

Il faudrait améliorer les scripts pour les rendre plus robustes aux erreurs. Même si ce serait plus simple de repartir du début. Vous pouvez essayer de relacer le script 0.2.1_correction_cd_nom_disparus.sql avant la commande ./apply_changes.sh 13 Mais cela n'importera pas les données concernant les cd_noms disparus et donc la detection du changement de cd_nom pour Juncus ambiguus Guss. et Quercus petraea Liebl.

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

3 participants