Saltar al contenido

PostgreSQL: consulta desde el script bash como usuario de la base de datos ‘postgres’

Solución:

Prueba este:

#!/bin/bash
psql -U postgres -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"

O usando su:

#!/bin/bash
su -c "psql -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"" postgres

Y también sudo:

#!/bin/bash
sudo -u postgres -H -- psql -d database_name -c "SELECT c_defaults  FROM user_info WHERE c_uid = 'testuser'"

Puede conectarse a psql como se muestra a continuación y escribir sus consultas sql como lo hace en una función de postgres normal dentro del bloque. Allí, se pueden usar variables bash. Sin embargo, el script debe ser estrictamente sql, incluso para los comentarios que necesita usar, en lugar de #:

#!/bin/bash
psql postgresql://<user>:<password>@<host>/<db> << EOF
       <your sql queries go here>
EOF

si planea ejecutarlo desde un archivo sql separado. aquí hay un buen ejemplo (tomado de una gran página para aprender a golpear con postgresql http://www.manniwood.com/postgresql_and_bash_stuff/index.html

#!/bin/bash
set -e
set -u
if [ $# != 2 ]; then
   echo "please enter a db host and a table suffix"
   exit 1
fi

export DBHOST=$1
export TSUFF=$2
psql 
  -X 
  -U user 
  -h $DBHOST 
  -f /path/to/sql/file.sql 
  --echo-all 
  --set AUTOCOMMIT=off 
  --set ON_ERROR_STOP=on 
  --set TSUFF=$TSUFF 
  --set QTSTUFF='$TSUFF' 
   mydatabase

   psql_exit_status = $?

   if [ $psql_exit_status != 0 ]; then
     echo "psql failed while trying to run this sql script" 1>&2
     exit $psql_exit_status
   fi

   echo "sql script successful"
exit 0
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *