MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
0 stars 1 forks source link

Erreur plume sur couche issue d'une requete SQL qgis #150

Closed DDT-16 closed 8 months ago

DDT-16 commented 11 months ago

Bonjour, Nous avons un projet Qgis, qui utilise des requêtes SQL construites directement sous QGIS à partir de de données du serveur PostgreSQL. Ci-après une exemple de couche construite sous qgis à partir de données Postgresql (dbname='ddt16' host=xxxxxxxxx port=5432 user='rc_consult' sslmode=require key='id_qgis' srid=2154 type=MultiPolygon checkPrimaryKeyUnicity='1' table="(SELECT * FROM \"appli_doc_urba\".\"doc_urba_en_cours\" )" (geom) sql="id_plui" is not null ). A chaque sollicitation de la couche(c'est-à-dire sélection de la couche), Plume affiche un message d'erreur "Attention schéma "" does not exist".

Je suis disponible pour plus d'info. Cordialement

WREATCHED commented 11 months ago

Contact téléphonique avec Michel (merci MA) (31/07/2023) Contexte Lorsque l'on crée une vue à partir de DB Manager et que l'on sauvegarde la vue, Plume fonctionne parfaitement. Par contre, dès lors que la vue n'est pas physiquement créée, Plume retourne un message capturé dans une boite de dialogue.

Deux exemples simples

MA précise que beaucoup de services travaillent de cette façon afin de ne pas encombrer le serveur avec toutes ses vues, d'où la nécessité de corriger rapidement.

alhyss commented 11 months ago

Vu avec @WREATCHED : comme Plume ne peut rien faire de ces résultats de requêtes qui ne sont pas des objets PostgreSQL, il va faire en sorte qu'ils ne soient pas considérés du tout, comme c'est aujourd'hui le cas pour toutes les couches qui ne sont pas issues de PostgreSQL. Lorsque l'utilisateur cliquera dessus dans le panneau des couches, le seul effet sera de revenir à l'écran d'accueil de Plume.

Edit : Je remplace l'étiquette "bug" par une étiquette "enhancement", car, si le comportement actuel n'est pas idéal pour l'utilisateur, l'erreur renvoyée par le serveur PostgreSQL est correctement gérée par Plume.

WREATCHED commented 11 months ago

Solution Nous sommes partis sur l'hypothèse qu'une couche virtuelle n'aura pas de schéma. Modification du code pour plume.py et plume_ui.py if self.layer.dataProvider().name() == 'postgres' and QgsDataSourceUri(self.layer.source()).schema() :

https://github.com/MTES-MCT/metadata-postgresql/assets/66324136/54f67681-44d5-4b0d-960c-c62bc9bb4b30

MichelAUZANNEAUddt16 commented 11 months ago

Problème résolu. Merci pour cette correction qui fonctionne parfaitement. Au quotidien, ce pb était quelque peu énervant !

Bravo à la teams 'Plume'

alhyss commented 11 months ago

Merci pour ton retour @MichelAUZANNEAUddt16 ! Nous prévoyons de diffuser une nouvelle version qui inclura ce correctif d'ici la fin du mois.