Re: Acerca de variable de entorno para psql

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Yessica Brinkmann <yessica(dot)brinkmann(at)gmail(dot)com>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)lists(dot)postgresql(dot)org>
Subject: Re: Acerca de variable de entorno para psql
Date: 2018-11-06 08:07:54
Message-ID: CA+bJJbz6H3RCxvkdSXon++vAoTrBgx=yZOZ3A-anKxwqBZ700Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yessica:

2018-11-06 4:05 GMT+01:00 Yessica Brinkmann <yessica(dot)brinkmann(at)gmail(dot)com>:
...
> Tengo el psql dentro del directorio postgresql-8.3.23/src/bin/psql
....
> Y lo ejecuto ingresando a dicho directorio y escribiendo:
> ./psql template1 por ejemplo.
>
> El caso es que ahora necesito correr un conjunto de scripts sql que están en
> un directorio aparte, con el psql
> Es decir, necesito escribir por ejemplo:
> psql $CONNSTR -U $SYSDBA -d postgres < pgsqlds2_create_db.sql
> El archivo pgsqlds2_create_db.sql se encuentra en el directorio
> home/yessica/ds2
> El caso es que cuando trato de ejecutar el script me responde el bash con un
> error, diciendo que el psql no existe.
> Por eso creo que necesito agregar seguramente el psql como una variable de
> entorno, para poder llamarla desde el bash, para poder ejecutar un script
> sql que se encuentra en un directorio específico.

Problema de Unix, no de postgres. Como ya sabras los shell de unix
buscan cualquier comando que ejecutes SIN separadores de directorio en
$PATH.

Segun tu ejemplo el script lo ejecuta asi ( hay algunos hechos de
forma que usan $PSQL y lo inicializan a psql, que tienen otras
soluciones ).

Lo unico que tienes que hacer es poner el directorio ( COMPLETO, en tu
ejemplo das un nombre relativo, probablemente lo que quieres es
$HOME/postgresql-8.3.23/src/bin ) en el PATH, normalmente al prinpio
por si tienes algun otro psql en el sistema ( yo suelo optar en estos
casos por 'export PATH=$HOME/postgresql-8.3.23/src/bin:$PATH' ).

Unas indicaciones extra. Primero, la presencia de /src/ en tu nombre
de archivo indica que probablemente no has instalado el postgres y
estas trabajando sobre el compilado directo. Eso suele dar algun
problemilla. Segundo, si no quieres contaminar el entorno de ru shell
de usuario metieno lo del PATH en el .bashrc (ya que probablemente sea
bash lo que usas ), puedes o bien hacer una asignacion local (
'PATH=$HOME/postgresql-8.3.23/src/bin:$PATH <el script>' ), que te
pone el PATH durante la ejecucion de ese comando o, si son varios,
hacer un subshell ( haces bash-enter, modificas el path ahi, ejecutas
lo que quieras, haces exit para volver al principal y vuelves a tu
entorno 'limpio' ).

Por ultimo, puedes usar nombres completos, cosas como
'$HOME/postgresql-8.3.23/src/bin/psql $CONNSTR -U $SYSDBA -d postgres
< $HOME/ds2/pgsqlds2_create_db.sql', que te deberian funcionar desde
cualquier punto del filesystem.

Francisco Olarte.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Yessica Brinkmann 2018-11-06 13:15:02 Re: Acerca de variable de entorno para psql
Previous Message Yessica Brinkmann 2018-11-06 03:05:41 Acerca de variable de entorno para psql