psql profiles?
Greetings,
I'm setting up my workstation to use "gss" for auth to a variety of Pg
systems on different hosts.
I'd rather not have to specify the "-h" for a connection:
psql -h db-host-1.example.com foo
I'd rather do:
psql foo
and have it know that I connect to foo on host db-host-1.example.com.
Is this possible with psql or do I hack together some wrapper script?
Thanks for any input!
-m
On 2018-Dec-06, Matt Zagrabelny wrote:
I'd rather do:
psql foo
and have it know that I connect to foo on host db-host-1.example.com.
Is this possible with psql or do I hack together some wrapper script?
Sure, just define a pg_service.conf file.
https://www.postgresql.org/docs/11/libpq-pgservice.html
--
�lvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
On Thu, Dec 6, 2018 at 4:24 PM Alvaro Herrera <alvherre@2ndquadrant.com>
wrote:
On 2018-Dec-06, Matt Zagrabelny wrote:
I'd rather do:
psql foo
and have it know that I connect to foo on host db-host-1.example.com.
Is this possible with psql or do I hack together some wrapper script?
Sure, just define a pg_service.conf file.
https://www.postgresql.org/docs/11/libpq-pgservice.html
Thanks Alvaro!
Is there any shorter version than:
psql "service=foo"
?
If not, I can make a shell alias that puts the "service=$@" into the
command.
Thanks again!
-m
On 07.12.2018 01:34, Matt Zagrabelny wrote:
On Thu, Dec 6, 2018 at 4:24 PM Alvaro Herrera <alvherre@2ndquadrant.com
<mailto:alvherre@2ndquadrant.com>> wrote:Sure, just define a pg_service.conf file.
https://www.postgresql.org/docs/11/libpq-pgservice.htmlThanks Alvaro!
Is there any shorter version than:
psql "service=foo"
?
If not, I can make a shell alias that puts the "service=$@" into the
command.
Also you can set environment variable PGSERVICE=foo in your .bashrc. Or
you can just set variable PGHOST=db-host-1.example.com. In last case you
don't need pg_service.conf file.
--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company
On Fri, Dec 7, 2018 at 7:42 AM Arthur Zakirov <a.zakirov@postgrespro.ru>
wrote:
On 07.12.2018 01:34, Matt Zagrabelny wrote:
On Thu, Dec 6, 2018 at 4:24 PM Alvaro Herrera <alvherre@2ndquadrant.com
<mailto:alvherre@2ndquadrant.com>> wrote:Sure, just define a pg_service.conf file.
https://www.postgresql.org/docs/11/libpq-pgservice.htmlThanks Alvaro!
Is there any shorter version than:
psql "service=foo"
?
If not, I can make a shell alias that puts the "service=$@" into the
command.
Thanks for the hints and discussion about this.
Here's my final implementation for the curious and to close the loop:
# a zsh function to avoid having to type "service="
$ which pssql
pssql () {
psql "service=$@"
}
# and a zsh completion function:
$ cat ~/.fpath/_pssql
#compdef pssql
PG_SERVICES_CONF=~/.pg_service.conf
if [[ -r ${PG_SERVICES_CONF} ]]; then
compadd $(sed -nE 's/^ *\[(.*)\] *$/\1/p' ${PG_SERVICES_CONF})
fi
It works like a charm!
Thanks for all the help!
-m
On 12/07/2018 10:45 AM, Matt Zagrabelny wrote:
On Fri, Dec 7, 2018 at 7:42 AM Arthur Zakirov <a.zakirov@postgrespro.ru
<mailto:a.zakirov@postgrespro.ru>> wrote:On 07.12.2018 01:34, Matt Zagrabelny wrote:
On Thu, Dec 6, 2018 at 4:24 PM Alvaro Herrera
<alvherre@2ndquadrant.com <mailto:alvherre@2ndquadrant.com>
<mailto:alvherre@2ndquadrant.com <mailto:alvherre@2ndquadrant.com>>>
wrote:
Sure, just define a pg_service.conf file.
https://www.postgresql.org/docs/11/libpq-pgservice.htmlThanks Alvaro!
Is there any shorter version than:
psql "service=foo"
?
If not, I can make a shell alias that puts the "service=$@" into the
command.Thanks for the hints and discussion about this.
Here's my final implementation for the curious and to close the loop:
# a zsh function to avoid having to type "service="
$ which pssql
pssql () {
psql "service=$@"
}# and a zsh completion function:
$ cat ~/.fpath/_pssql
#compdef pssqlPG_SERVICES_CONF=~/.pg_service.conf
if [[ -r ${PG_SERVICES_CONF} ]]; then
compadd $(sed -nE 's/^ *\[(.*)\] *$/\1/p' ${PG_SERVICES_CONF})
fiIt works like a charm!
I made bash functions to do something similar, with just hardcoded server
names. It has auto-complete and allows me to use descriptive names instead
of server names and custom postgres versions.
--
Angular momentum makes the world go 'round.