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.
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 |