Lister et changer de base de données dans PostgreSQL
PostgreSQL, un puissant système de base de données objet-relationnel open-source, offre un riche ensemble d’outils et de fonctionnalités pour gérer efficacement les bases de données. Que vous soyez administrateur de base de données ou développeur backend, savoir comment lister et passer d’une base de données à l’autre est essentiel pour naviguer dans des environnements multi-bases de données.
1. Conditions préalables
Avant de commencer, assurez-vous que
PostgreSQL est installé sur votre système(psql est accessible).
Vous avez les permissions appropriées (par exemple, superutilisateur ou rôle avec droits de connexion).
Vous pouvez vous authentifier auprès du serveur PostgreSQL en utilisant un utilisateur valide.
2. Lister les bases de données dans PostgreSQL
méthode 1 : Utiliser la méta-commande psql
Lancez le terminal interactif psql et exécutez :
Ou la forme développée :
Cela renvoie une liste de toutes les bases de données :
Name
Owner
Encoding
Collation
Ctype
Access privileges
Méthode 2 : Utilisation d’une requête SQL
Vous pouvez également exécuter cette instruction SQL :
Cette requête exclut les bases de données modèles (template0, template1) et affiche les bases de données créées par l’utilisateur.
🛠️ Méthode 3 : Ligne de commande
En dehors de psql, à partir de votre terminal :
Vous pouvez également utiliser psql -l:
3. Changer de base de données
Contrairement à d’autres SGBDR (par exemple MySQL), PostgreSQL ne supporte pas le changement de base de données dans la même session en utilisant une commande comme USE dbname ;.
Pourquoi ?
PostgreSQL établit une connexion à une base de données spécifique au moment de la connexion. Pour accéder à une autre base de données, vous devez vous déconnecter et vous reconnecter.
Approche recommandée :
Quitter la session courante et se reconnecter à la base de données désirée :
Puis :
psql -U username -d target_database
Ou directement :
Exemple :
4. Conseils pour un flux de travail efficace sur plusieurs bases de données
a. Utiliser .pgpass pour une commutation sans mot de passe
Créez un fichier .pgpass pour automatiser l’authentification :
hostname:port:database:username:password
Assurez-vous que les permissions sont correctes :
b. Automatiser avec des scripts Shell
Créez un script pour lister et commuter :
c. Utiliser les variables d’environnement
Exporter la base de données et l’utilisateur par défaut pour une commutation plus rapide :
5. Travailler avec PgAdmin et d’autres interfaces graphiques
Dans PgAdmin :
Cliquez sur le groupe de serveurs.
Cliquez avec le bouton droit de la souris → Connecter à une base de données.
Utiliser le menu déroulant de l’outil de requête pour changer de base de données (crée un nouvel onglet par base de données).
De nombreux outils (DBeaver, DataGrip) permettent des connexions multiples avec des vues de base de données à onglets.
6. Bonus : Vérifier la base de données actuelle
Dans psql, recherchez votre base de données actuelle :
Ou utilisez :
Conclusion
Bien que PostgreSQL ne permette pas le changement de base de données en cours de session comme d’autres moteurs SQL, son modèle de connexion robuste assure un contrôle d’accès et une gestion des ressources propres et cohérents. En maîtrisant les techniques de listage et en adoptant des pratiques de reconnexion intelligentes, vous pouvez gérer efficacement et passer d’une base de données PostgreSQL à une autre dans n’importe quel environnement – que ce soit via l’interface CLI, l’interface graphique ou des scripts.


