Commandes essentielles pour survivre en production PostgreSQL.
Connexion
# Connexion locale (user postgres)sudo-upostgrespsql
# Connexion avec paramètrespsql-hlocalhost-p5432-Umyuser-dmydb
# Connexion via URIpsql"postgresql://user:password@host:5432/dbname"# Exécuter une commandepsql-c"SELECT version();"# Exécuter un fichier SQLpsql-fscript.sql
Commandes psql
Commande
Description
\l
Lister les bases
\c dbname
Se connecter à une base
\dt
Lister les tables
\dt+
Tables avec tailles
\d table
Décrire une table
\di
Lister les index
\du
Lister les users/rôles
\dn
Lister les schemas
\df
Lister les fonctions
\x
Affichage étendu (toggle)
\timing
Afficher durée requêtes
\e
Éditer dans $EDITOR
\i file.sql
Exécuter un fichier
\o file
Sortie vers fichier
\q
Quitter
Utilisateurs & Permissions
-- Créer un utilisateurCREATEUSERmyuserWITHPASSWORD'password';-- Créer une baseCREATEDATABASEmydbOWNERmyuser;-- Accorder tous les droitsGRANTALLPRIVILEGESONDATABASEmydbTOmyuser;-- Droits sur le schema\cmydbGRANTALLONSCHEMApublicTOmyuser;GRANTALLONALLTABLESINSCHEMApublicTOmyuser;-- User read-onlyCREATEUSERreadonlyWITHPASSWORD'password';GRANTCONNECTONDATABASEmydbTOreadonly;GRANTUSAGEONSCHEMApublicTOreadonly;GRANTSELECTONALLTABLESINSCHEMApublicTOreadonly;-- Changer le mot de passeALTERUSERmyuserWITHPASSWORD'newpassword';-- Supprimer un utilisateurDROPUSERmyuser;
# Dump une base (format custom)pg_dump-Fcmydb>mydb.dump
# Dump en SQLpg_dumpmydb>mydb.sql
# Dump toutes les basespg_dumpall>all_databases.sql
# Restore format custompg_restore-dmydbmydb.dump
# Restore SQLpsqlmydb<mydb.sql
# Dump schema onlypg_dump--schema-onlymydb>schema.sql
# Dump data onlypg_dump--data-onlymydb>data.sql
-- Voir un paramètreSHOWshared_buffers;SHOWmax_connections;SHOWwork_mem;-- Voir tous les paramètres modifiésSELECTname,setting,sourceFROMpg_settingsWHEREsource!='default';-- Modifier (session)SETwork_mem='256MB';-- Recharger la configSELECTpg_reload_conf();