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

Erreur sur l'API taxhub/api/taxref/allnamebylist/<idliste> avec GeoNature 2.12.3 et TaxHub 1.12.0 #2636

Closed
lpofredc opened this issue Jul 19, 2023 · 5 comments
Labels
dependencies Pull requests that update a dependency file solved in next release

Comments

@lpofredc
Copy link
Contributor

Version
GeoNature 2.12.3 avec TaxHub 1.12.0

Description du bug
Après mise à jour des 3 applications UsersHub, TaxHub et GeoNature sur leurs dernières releases, une erreur est soulevée dans OccTax sur la route https://[...]/taxhub/api/taxref/allnamebylist/<idliste>. Ceci est dû aux différences de version de TaxHub entre la version installée (v1.12.0) et la dépendances installée dans le venv de geonature (v1.11.1). Par conséquent, des migrations sont donc manquantes dans le db autoupgrade de geonature.

Solution, installer taxhub 1.12.0 dans le venv geonature (ou installer TaxHub 1.11.1)

source geonature/backend/venv/bin/activate
pip install taxhub==1.12.0

Comportement attendue
Consultation de l'API TaxHub sans erreur ;)

Comment reproduire
Installer TaxHub 1.12.0 avec GeoNature 2.12.3

Logs
Extrait du fichier /var/log/taxhub.log.

/var/log/taxhub# tail -f taxhub.log 
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedColumn) column vm_taxref_list_forautocomplete.unaccent_search_name does not exist
LINE 1: ...nomie_vm_taxref_list_forautocomplete_search_name, taxonomie....
                                                             ^

[SQL: SELECT taxonomie.vm_taxref_list_forautocomplete.gid AS taxonomie_vm_taxref_list_forautocomplete_gid, taxonomie.vm_taxref_list_forautocomplete.cd_nom AS taxonomie_vm_taxref_list_forautocomplete_cd_nom, taxonomie.vm_taxref_list_forautocomplete.search_name AS taxonomie_vm_taxref_list_forautocomplete_search_name, taxonomie.vm_taxref_list_forautocomplete.unaccent_search_name AS taxonomie_vm_taxref_list_forautocomplete_unaccent_search__1, taxonomie.vm_taxref_list_forautocomplete.cd_ref AS taxonomie_vm_taxref_list_forautocomplete_cd_ref, taxonomie.vm_taxref_list_forautocomplete.nom_valide AS taxonomie_vm_taxref_list_forautocomplete_nom_valide, taxonomie.vm_taxref_list_forautocomplete.lb_nom AS taxonomie_vm_taxref_list_forautocomplete_lb_nom, taxonomie.vm_taxref_list_forautocomplete.nom_vern AS taxonomie_vm_taxref_list_forautocomplete_nom_vern, taxonomie.vm_taxref_list_forautocomplete.regne AS taxonomie_vm_taxref_list_forautocomplete_regne, taxonomie.vm_taxref_list_forautocomplete.group2_inpn AS taxonomie_vm_taxref_list_forautocomplete_group2_inpn, similarity(taxonomie.vm_taxref_list_forautocomplete.unaccent_search_name, %(similarity_1)s) AS idx_trgm 
FROM taxonomie.vm_taxref_list_forautocomplete JOIN taxonomie.bib_noms ON taxonomie.bib_noms.cd_nom = taxonomie.vm_taxref_list_forautocomplete.cd_nom JOIN taxonomie.cor_nom_liste ON taxonomie.cor_nom_liste.id_nom = taxonomie.bib_noms.id_nom AND taxonomie.cor_nom_liste.id_liste = %(id_liste_1)s 
WHERE taxonomie.vm_taxref_list_forautocomplete.unaccent_search_name ILIKE unaccent(%(unaccent_1)s) ORDER BY idx_trgm DESC, taxonomie.vm_taxref_list_forautocomplete.cd_nom = taxonomie.vm_taxref_list_forautocomplete.cd_ref DESC 
 LIMIT %(param_1)s OFFSET %(param_2)s]
[parameters: {'similarity_1': 'Renard', 'id_liste_1': 100, 'unaccent_1': '%Renard%', 'param_1': 20, 'param_2': 0}]
(Background on this error at: https://sqlalche.me/e/14/f405)
@lpofredc lpofredc added the bug label Jul 19, 2023
@TheoLechemia
Copy link
Member

Effectivement, il y a un couac entre la version de TaxHub installé dans le venv de Geonature (qui fournit les migrations à appliquer) et la véritable version de TaxHub installée..
Un solution est de se mettre dans le venv de GeoNature, puis de faire un pip install . depuis le répertoire de Taxhub, puis de passer les migrations.
Je vais faire un warning pour dire que la version 2.12.3 de GN n'est pas compatible avec la dernière de TaxHub..
On va bientôt sortir une véritable version de TaxHub packagé dans GeoNature, on aura plus ce soucis..

@gildeluermoz
Copy link
Contributor

Solution équivalente testée qui fonctionne aussi : mettre la bonne version de taxhub dans le requirements.txt de GeoNature avant de lancer le migration.sh.

@gildeluermoz
Copy link
Contributor

Pour éviter un conflit de dépendances, il faut aussi mettre à jour la version de pypnusershub pour taxhub 1.12.0. Donc dans le backend/requirements.txt, changer ceci :

pypnusershub==1.6.8
 taxhub==1.12.0

@camillemonchicourt camillemonchicourt added solved in next release dependencies Pull requests that update a dependency file and removed bug labels Jul 31, 2023
@camillemonchicourt
Copy link
Member

Oui c'est "normal", depuis le passage à Alembic, c'est GeoNature qui se charge de mettre à jour toutes les branches dont celles des schémas taxonomie de TaxHub et utilisateurs de UsersHub.
Donc il y a une plus forte dépendance des versions de GeoNature, TaxHub et UsersHub.

Quand on sort une nouvelle version de TaxHub qui contient des évolutions du modèle de données, il faut aussi sortir une version de GeoNature qui fait référence au niveau de ses dépendances à cette nouvelle version de TaxHub.

Idem que PnX-SI/TaxHub#396

On a en effet sorti TaxHub la version 1.12.0 de TaxHub, en prévision de la version 2.13.0 de GeoNature, mais on a un peu temporiser celle-ci.

C'est donc fait dans la branche DEVELOP - f6f00e9

En attendant, il ne faut pas mettre à jour TaxHub si on utilise GeoNature. Ou alors on aurait pu sortir 2.12.4 de GeoNature juste pour ça, mais c'est dommage.

Ce qu'on peut faire, c'est indiquer dans les notes de version de TaxHub 1.11.2, 1.11.2 et 1.12.0 : "Compatible avec GeoNature 2.13.0 ou plus" (même si cette version n'existe pas encore...).
Ou alors ne pas sortir de nouvelles versions de TaxHub tant que la version compatible de GeoNature n'est pas prête, mais c'est dommage...

Avec la v2 de TaxHub en cours de développement, le lien entre TaxHub et GeoNature sera plus assumé et packagé, donc on devrait avoir moins de soucis de ce type.

@camillemonchicourt
Copy link
Member

TaxHub 1.12.0 intégré avec la version 2.13.0 de GeoNature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file solved in next release
Projects
None yet
Development

No branches or pull requests

4 participants