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

Mettre en place la pérennité du contenu du db_connections.json en cas de mise à jour #487

Open
SimonSAMPERE opened this issue Sep 3, 2024 · 4 comments
Assignees
Labels
enhancement Amélioration du fonctionnement existant support
Milestone

Comments

@SimonSAMPERE
Copy link
Collaborator

SimonSAMPERE commented Sep 3, 2024

Suite à une sollicitation du support par le CD94 qui a constaté en mettant à jour le plugin que le fichier db_connections.json avait été supprimé, coupant l'accès à leur BDD et les empêchant d'ajouter des données.

Ce sujet est très lié à #258 : lors d'une mise à jour, tout le répertoire d'installation du plugin est supprimé avant d'être re-rempli avec les fichiers de la nouvelle version. Donc le fichier db_connections.json a été supprimé et quand on le plugin a été lancé, il a constaté qu'il n'y avait pas de fichier et en a recréé un vierge. Pour que cela n'arrive pas, il faudrait (comme avec le fichier quicksearches.json) enregistrer le contenu du fichier db_connections.json dans les QSettings. De cette manière, en cas d'absence du fichier, le plugin pourrait en recréer un qui soit rempli avec les infos stockées dans les QSettings.

Un point est organisé le 04/09/2024 avec les utilisateurs et utilisatrices du CD94 pour :

  • expliquer le problème
  • demander pourquoi ça leur pose problème de recréer le fichier db_connections.json étant donnée leur méthode de déploiement
  • demander si la solution peut convenir, si c'est OK pour stocker des mdp de BDD dans les QSettings de QGIS
  • expliquer que si cette solution est adoptée, la mise à jour vers la prochaine version 3.6.1 supprimera également le fichier db_connections.json mais qu'à partir de cette version les mises à jour du plugin n'occasionneront plus ce problème

(@Mouzzi-C je t'assigne juste pour que tu aies les notifs)

@SimonSAMPERE SimonSAMPERE added the enhancement Amélioration du fonctionnement existant label Sep 3, 2024
@SimonSAMPERE SimonSAMPERE added this to the 3.6.1 milestone Sep 3, 2024
@SimonSAMPERE SimonSAMPERE self-assigned this Sep 3, 2024
@SimonSAMPERE
Copy link
Collaborator Author

SimonSAMPERE commented Sep 3, 2024

SPET - environ 2 jours

  • prépondérance du contenu du fichier db_connections.json sur les QSettings isogeo/user/db_connections

  • pas de modifications du contenu du fichier db_connections.json par l'utilisateur via le plugin (à l'inverse des quicksearches)

  • recours aux QSettings après chargement du contenu du fichier isogeo/user/db_connections pour :

    • y récupérer les infos
    • y écrire des infos après le merge des contenus des QSettings et du fichier
  • ajout méthodes au SettingsManager :

    • load_db_connections_from_json
    • load_db_connections_from_qsettings
    • merge_db_connections
    • write_db_connections_qsettings seulement si nécessaire
    • update_db_connections_qsettings
  • modification de la méthode load_db_connections du SettingsManager

@SimonSAMPERE
Copy link
Collaborator Author

Point du 04/09/2024 avec le CD94 avec @Mouzzi-C

Ce que @SimonSAMPERE a compris de nouveau sur le Centre Logiciel du CD94

Le Package de QGIS déployé dans le centre logiciel est généré par la DSI à partir des ressources fournies par Stéphanie :

  • l'exécutable .msi d'installation d'une version spécifique de QGIS (directement récupéré sur le site Internet)
  • les fichiers qui composent les différents modules, dont le module Isogeo

Le déploiement sur le poste d'un utilisateur peut se faire via une action volontaire de sa part sans qu'on le sache. Donc pas moyen d'avoir la liste des utilisateurs qui ont mis à jour QGIS. D'autre part, les utilisateurs ont la possibilité de mettre à jour le plugin directement sur leur poste via le gestionnaire des extensions, là encore pas moyen d'avoir la liste des utilisateurs qui ont mis à jour le plugin Isogeo.

Mais il est également possible de demander à la DSI de déployer de manière automatique une nouvelle version de QGIS (et de ses modules) sur le poste de tous les utilisateurs.

Ce qui a été décidé pour la suite

Le développement décrit ici est la seule manière de s'assurer qu'un utilisateur de QGIS du CD94 qui mettrait à jour le plugin Isogeo sur son poste ne perde pas la connexion à la BDD.

En attendant la publication de la version 3.6.1 du plugin qui comprendra ce développement, il est conseillé de redéployer automatiquement la dernière version du plugin Isogeo (avec le fichier db_connections.json correctement rempli) pour être sur que tous les utilisateurs ont bien la possibilité d'ajouter les données de la BDD via le plugin Isogeo. A priori, un déploiement de QGIS 3.34 est prévu prochainement et il serait possible de faire d'une pierre deux coups.

Une fois la version 3.6.1 publiée, il faudra refaire un déploiement automatique généralisé de QGIS comprenant cette nouvelle version du plugin et un fichier db_connections.json correctement rempli. Lorsque l'utilisateur lancera cette nouvelle version du plugin Isogeo, le contenu du fichier db_connections.json sera "sauvegardé" dans les settings de QGIS. Lors d'une mise à jour du plugin Isogeo, même si le fichier db_connections.json sera vidé, le plugin pourra récupérer les informations qu'il renfermait dans les settings de QGIS et ainsi établir la connexion à la BDD.

Néanmoins, il serait préférable, à chaque déploiement d'une nouvelle version de QGIS dans le centre logiciel, de veiller à ce que le fichier db_connections.json correctement rempli soit présent dans le dossier _user du module Isogeo. Il me semble que c'est la seule manière de s'assurer qu'un nouvel utilisateur puisse bénéficier de la connexion à la base de données. De même pour le fichier d'authentification client_secrets.json dans le dossier _auth du module Isogeo pour s'assurer que le module installé chez les nouveaux utilisateurs puisse s'authentifier à l'API Isogeo et donc être fonctionnel.

@SimonSAMPERE
Copy link
Collaborator Author

Pour info, sur mon poste, les settings de QGIS s'enregistre dans un fichier QGIS3.ini qui se trouve dans le dossier C:\Users\SimonSAMPERE\AppData\Roaming\QGIS\QGIS3\profiles\default\QGIS

Voici un code à exécuter dans la console Python de QGIS pour obtenir l'information :

from qgis.PyQt.QtCore import QSettings

qsettings = QSettings()

print(qsettings.fileName())

@SimonSAMPERE
Copy link
Collaborator Author

@Mouzzi-C pour info, comme vu avec @leodarengosse ça sera pas avant octobre cette évolution
Mais du coup vu qu'il peuvent forcer la mise à jour de QGIS embarquant la dernière version du plugin avec un db_connections.json correctement rempli ils sont pas bloqués.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Amélioration du fonctionnement existant support
Projects
None yet
Development

No branches or pull requests

2 participants