Elencare e cambiare database in PostgreSQL
Elencare e cambiare database in PostgreSQL
PostgreSQL, un potente sistema di database relazionale a oggetti open-source, offre una ricca serie di strumenti e funzioni per gestire i database in modo efficiente. Sia che siate un amministratore di database o uno sviluppatore backend, sapere come elencare e passare da un database all’altro è fondamentale per navigare in ambienti multi-database.
1. Prerequisiti
Prima di iniziare, assicuratevi che:
PostgreSQL sia installato sul vostro sistema(psql è accessibile).
Si disponga dei permessi appropriati (ad esempio, superutente o ruolo con diritti di connessione).
Ci si possa autenticare con il server PostgreSQL utilizzando un utente valido.
2. Elencare i database in PostgreSQL
🔍 Metodo 1: Utilizzo del metacomando psql
Avviare il terminale interattivo psql ed eseguire:
Oppure la forma estesa:
Questo restituisce un elenco di tutti i database:
Name
Owner
Encoding
Collation
Ctype
Access privileges
Metodo 2: Utilizzo di una query SQL
In alternativa, eseguire questa istruzione SQL:
Questa query esclude i database modello (template0, template1) e mostra i database creati dall’utente.
🛠️ Metodo 3: Shell a riga di comando
Al di fuori di psql, dal terminale:
Si può anche usare psql -l:
3. Cambiare database
A differenza di altri RDBMS (ad esempio, MySQL), PostgreSQL non supporta il cambio di database all’interno della stessa sessione utilizzando un comando come USE dbname;.
Perché?
PostgreSQL stabilisce una connessione a un database specifico al momento del login. Per accedere a un altro database, è necessario disconnettersi e riconnettersi.
Approccio consigliato:
Uscire dalla sessione corrente e riconnettersi al database desiderato:
Quindi:
Oppure direttamente:
Esempio:
4. Suggerimenti per un flusso di lavoro efficiente su più database
a. Utilizzare .pgpass per la commutazione senza password
Creare un file .pgpass per automatizzare l’autenticazione:
Assicurarsi che abbia i permessi corretti:
b. Automatizzare con gli script di shell
Creare uno script che elenchi e commuti:
#!/bin/bash
echo "Available Databases:"
psql -U postgres -c "\l"
read -p "Enter target DB: " db
psql -U postgres -d "$db"c. Utilizzare le variabili d’ambiente
Esportare il DB e l’utente predefiniti per un passaggio più rapido:


