Lister et changer de base de données dans PostgreSQL
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 :
\lOu la forme développée :
\ListeCela 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 :
SELECT datname FROM pg_database WHERE datistemplate = false;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 :
psql -U postgres -c "\l"Vous pouvez également utiliser psql -l:
psql -l3. 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 :
\q -- Quitter la session psql actuellePuis :
psql -U username -d target_databaseOu directement :
psql -U username -d target_database -h hostname -p portExemple :
psql -U admin -d salesdb4. 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:passwordAssurez-vous que les permissions sont correctes :
chmod 600 ~/.pgpassb. Automatiser avec des scripts Shell
Créez un script pour lister et commuter :
#!/bin/bash
echo "Available Databases:"
psql -U postgres -c "\l"
read -p "Enter target DB: " db
psql -U postgres -d "$db"c. Utiliser les variables d’environnement
Exporter la base de données et l’utilisateur par défaut pour une commutation plus rapide :


