postgresql et psqlrc
TRANSCRIPT
psql
Plus d’infos sur vos objets
\d[S+] Infos\ddp default access privileges\dew[+] Foreign Data Wrappers\dF[+] Recherche full-text\dn[S+] Schémas\du Users\dx[+] Extensions installées... ...
psql
Oui mais comment• personnaliser mon environnement ?• éviter d’écrire (tout le temps) les mêmes requêtes ?• ...
.psqlrc
Intro• configuration système ou user (voir la commandepg_config --sysconfdir)
• .psqlrc sous Unix, %APPDATA%\postgresql\psqlrc.confpour Windows
.psqlrc pour personnaliser :• l’affichage : prompt, bordures,«NULL», ...• définir ses propres variables : raccourcis, requêtesfréquentes
• divers : historique, autocommit, comportement surerreur...
.psqlrcL’invite avec PROMPT1, PROMPT2 et PROMPT3
%M : server%m : host name%> : port%n : user%/ : current database%~ : like \%/ but ~ for default database%# : ’#’ if superuser, ’>’ otherwise%R
.psqlrcL’invite avec PROMPT1, PROMPT2 et PROMPT3
%M : server%m : host name%> : port%n : user%/ : current database%~ : like \%/ but ~ for default database%# : ’#’ if superuser, ’>’ otherwise%R
.psqlrc
Définir ses propres variables :
Si la variable est un identifiant (ou instruction SQL), il est plussûr de l’écrire ainsi :
.psqlrc
Définir ses propres variables :
Si la variable est un identifiant (ou instruction SQL), il est plussûr de l’écrire ainsi :
.psqlrc
Requêtes fréquentes :
-- Custom variables and shortcuts\set eav ’EXPLAIN ANALYZE VERBOSE’
-- Custom queries-- server uptime\set uptime ’select date_trunc(\’second\’,current_timestamp - pg_postmaster_start_time()) as uptime;’-- table size\set table-size ’select nspname || \’.\’ || relname AS \"relation\", pg_size_pretty(pg_relation_size(C.oid)) AS "size" from pg_class C left join pg_namespace N on (N.oid = C.relnamespace) where nspname not in (\’pg_catalog\’, \’information_schema\’) order by pg_relation_size(C.oid) desc limit 20;’-- database size\set database-size ’SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner, CASE WHEN pg_catalog.has_database_privilege(d.datname, \’CONNECT\’) THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname)) ELSE \’No Access\’ END AS Size FROM pg_catalog.pg_database d ORDER BY CASE WHEN pg_catalog.has_database_privilege(d.datname, \’CONNECT\’) THEN pg_catalog.pg_database_size(d.datname) ELSE NULL END DESC LIMIT 20;’-- buffer cache hit ratio\set buffer-cache-hit-ratio ’select datname, blks_hit::float/(blks_hit+blks_read) as hit_ratio from pg_stat_database where blks_read+blks_hit <> 0;’
.psqlrcDivers : historique
---------------------------------------------- HISTFILE-- File used to store history list-- Values:--\set HISTFILE ~/.psql_history- :DBNAME---------------------------------------------- HISTSIZE-- Values: numeric, defaults to 500--\set HISTSIZE 500---------------------------------------------- HISTCONTROL-- Values: ignorespace,ignoredups,ignoreboth\set HISTCONTROL ignoreboth
En savoir plus
Pour les curieux :• http://www.postgresql.org/docs/9.4/static/app-psql.html• http://www.craigkerstiens.com/2013/02/21/more-out-of-psql/• https://github.com/e7e6/psqlrc