Aller au contenu

Ajouter une table de Base de données (PostGIS ou Oracle Spatial)

Une table PostGIS ou Oracle Spatial pourra être ajoutée via le plugin dans les conditions suivantes :

Plusieurs connexions similaires

Si plusieurs connexions ont été configurées pour des bases de données dont le nom est identique, il est possible d'indiquer au plugin la connexion a utiliser pour accéder aux données stockées dans la base concernée.


Connexion configurée dans le gestionnaire des sources de données de QGIS

La première manière de configurer une connexion à une base de données consiste à ajouter une source de données dans QGIS : Menu "Couche" > "Gestionnaire des sources de données" > onglet "PostgreSQL" ou "Oracle" > cliquer sur "Nouveau".

Qu'il s'agisse d'une base Oracle ou PostgreSQL, pour qu'une connexion soit utilisable par le plugin Isogeo, il faut que le nom d'utilisateur et le mot de passe aient été saisis et soient stockés :

Pour les bases de données PostgreSQL uniquement

Il est possible d'indiquer le nom d'un service dans le champ "Service" du formulaire de création d'une nouvelle connexion à une base de données (voir capture ci-dessus).

Ce service doit avoir été spécifié dans un fichier de configuration pg_service.conf.

L'emplacement du fichier pg_service.conf doit avoir être enregistré dans une variable d'environnement "PGSERVICEFILE" configurée dans l'OS et dans QGIS. Pour configurer la variable dans QGIS : Menu "Préférences" > "Options..." > onglet "Système" > Rubrique "Environnement" > cocher "Utiliser des variables personnalisées..." > cliquer sur "+".


Connexion configurée dans le fichier _user\db_connections.json

La deuxième manière de configurer une connexion à une base de données consiste à inscrire les informations de connexion dans le fichier db_connections.json du dossier _user qui se situe dans le répertoire d'installation du plugin QGIS Isogeo :

  • à l'emplacement suivant sous Windows : C:\Users\%userprofile%\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\isogeo_search_engine\_user\db_connections.json
  • et sous Ubuntu : /home/%userprofile%/.local/share/QGIS/QGIS3/profiles/default/python/plugins/isogeo_search_engine/_user/db_connections.json.

Vérifier le contenu du fichier _user/db_connections.json

Si le fichier ne semble pas pris en compte par le plugin, prenez le temps de vérifier qu'il a été rempli avec des informations valides. Vous pouvez également utiliser cet outil (ou un équivalent) pour vérifier que le contenu du fichier est conforme aux spécifications du format JSON.

En plus d'être conforme aux spécifications du format JSON, pour être pris en compte par le plugin Isogeo, ce fichier doit :

  • contenir un seul objet doté des 2 clefs suivantes :
    • Oracle
    • PostgreSQL
  • chacune de ces clefs doit avoir pour valeur une liste qui peut être :
    • vide
    • ou composé d'objet(s) doté(s) des clefs suivantes :
      • connection_name : le nom de la connection, il doit être unique, chaque connection doit avoir un nom différent
      • host : l'hôte où est hébergé la base de données
      • port : le port de connexion à la base
      • database : nom de la base
      • username : nom de l'utilisateur utilisé pour se connecté
      • password : mot de passe de l'utilisateur utilisé pour se connecté
      • database_alias : clef facultative présentée juste après

Le contenu par défaut du fichier _user\db_connections.json est le suivant (aucune connection n'est alors configurée ):

{
    "Oracle" : [],
    "PostgreSQL" : []
}

Pour les bases de données Oracle uniquement

Il est parfois nécessaire de rajouter une entrée database_alias.

Lorsque la valeur du champ "Emplacement de la ressource" des fiches de métadonnées est différente du nom de la base de données, il faut renseigner l'entrée database_alias en indiquant la valeur du champ "Emplacement de la ressource" de la fiche de métadonnées.

{
    "Oracle" : [
        {
            "connection_name" : "Nom de la connexion Oracle (il doit être unique)",
            "host" : "hôte",
            "port" : "port", 
            "database" : "nom de la base de données",
            "database_alias" : "emplacement de la ressource",
            "username" : "nom d'utilisateur",
            "password" : "mot de passe de l'utilisateur"
        }
    ],
    "PostgreSQL" : []
}

Prenez le temps de consulter les exemples présentés ci-dessous.

Exemples de contenu du fichier _user/db_connections.json

Configurer une seule connexion à une base de données PostgreSQL :

{
    "Oracle" : [],
    "PostgreSQL" : [
        {
            "connection_name" : "Nom de la connexion A (il doit être unique)",
            "host" : "hôte",
            "port" : "port", 
            "database" : "nom de la base de données",
            "username" : "nom d'utilisateur",
            "password" : "mot de passe de l'utilisateur"
        }
    ]
}

Configurer 2 connexions à des bases de données PostgreSQL et 1 connexion à une base de données Oracle :

{
    "Oracle" : [
        {
            "connection_name" : "Nom de la connexion A (il doit être unique)",
            "host" : "hôte",
            "port" : "port", 
            "database" : "nom de la base de données",
            "username" : "nom d'utilisateur",
            "password" : "mot de passe de l'utilisateur"
        }
    ],
    "PostgreSQL" : [
        {
            "connection_name" : "Nom de la connexion B (il doit être unique)",
            "host" : "hôte",
            "port" : "port", 
            "database" : "nom de la base de données",
            "username" : "nom d'utilisateur",
            "password" : "mot de passe de l'utilisateur"
        },
        {
            "connection_name" : "Nom de la connexion C (il doit être unique)",
            "host" : "hôte",
            "port" : "port", 
            "database" : "nom de la base de données",
            "username" : "nom d'utilisateur",
            "password" : "mot de passe de l'utilisateur"
        }
    ]
}