Encore un truc tout bête: je partage le compte postgres avec d’autres applications, et je veux utiliser un fichier .psqlrc personnalisé que seul mon code utilisera.
Or on sait que par défaut psql va chercher :
– Soit un fichier psqlrc global sous $( pg_config –sysconfdir)
– Soit un fichier ~postgres/.psqlrc
Les exceptions étant si -c ou -X sont passés sur la ligne de commandes:
$ psql --help | egrep '\-c|\-X' -c, --command=COMMAND run only single command (SQL or internal) and exit -X, --no-psqlrc do not read startup file (~/.psqlrc)
La solution est d’utiliser la variable d’environnement $PSQLRC, qui contient le chemin vers un .psqlrc alternatif, et que je peux positionner dans ma partie de code, pour qu’elle ne soit pas partagée par défaut par les autres applications.
Mon fichier .psqlrccap perso:
$ cat /home/postgres/.psqlrccap \set PROMPT1 '(%n@%M:%>) [%/] > ' \set PROMPT2 '' \pset null 'NULL' \set HISTSIZE 2000 \timing \pset pager off \set VERBOSITY verbose
On source à part:
echo '#!/bin/bash PSQLRC="/home/postgres/.psqlrccap" export PSQLRC' > envfile $ . envfile $ psql postgres -U capdata Null display is "NULL". Timing is on. Pager usage is off. psql (9.4.7) Type "help" for help. (capdata@[local]:5441) [postgres] >
Simple !
Continuez votre lecture sur le blog :
- Les dessous de la désactivation de ~/.mysql_history (David Baffaleuf) [MySQL]
- Nouveautés MySQL 8.0 : Configuration automatique de variables avec innodb_dedicated_server (Capdata team) [MySQL]
- La migration Oracle vers PostgreSQL avec ora2pg (Emmanuel RAMI) [OraclePostgreSQL]
- Containeriser PostgreSQL avec Docker ! (Emmanuel RAMI) [ContainerPostgreSQL]
- PostgreSQL : planifier une tâche avec pg_cron (Emmanuel RAMI) [Non classéPostgreSQL]