Verificamos profundamente cada una de las reseñas en nuestro espacio con la meta de mostrarte siempre información veraz y actualizada.
Solución:
Llego tarde a esta fiesta, pero siento que ninguna de las respuestas es realmente correcta. La mayoría parece dar a entender que pg_dump
escribe un archivo en alguna parte. no lo hace Ustedes están enviando la salida a un archivo, y Uds le dijo al shell dónde escribir ese archivo.
en tu ejemplo pg_dump test > backup.sql
, que utiliza el plain
o formato SQL, el pg_dump
mando no almacena cualquier archivo en cualquier lugar. Simplemente envía la salida a STDOUT
, que suele ser tu pantalla, y listo.
Pero en su comando, también le dijo a su shell (Terminal, símbolo del sistema, lo que sea) que redirigir STDOUT a un archivo. Esto no tiene nada que ver con pg_dump
pero es una característica estándar de shells como Bash o cmd.exe.
Usaste >
para redirigir STDOUT a un archivo en lugar de a la pantalla. Y diste el nombre del archivo: “backup.sql”. Como no especificó ninguna ruta, el archivo estará en su directorio actual. Este es probablemente su directorio de inicio, a menos que haya hecho una cd ...
en algún otro directorio.
En el caso particular de pg_dump
, también podría haber utilizado una alternativa a la > /path/to/some_file
redirección de shell, usando el -f some_file
opción:
-f archivo
–archivo=archivoEnvía la salida al archivo especificado. Este parámetro se puede omitir para formatos de salida basados en archivos, en cuyo caso se utiliza la salida estándar.
Así que tu comando podría haber sido pg_dump test -f backup.sql
, pidiendo a pg_dump que escriba directamente en ese archivo.
Pero en cualquier caso, da el nombre del archivo y, si no especifica una ruta, el archivo se crea en su directorio actual. Si su solicitud aún no muestra su directorio actual, puede hacer que se muestre con el pwd
comando en Unix, y cd
en Windows.
Vaya al símbolo del sistema y al directorio postgresql9.3bin.
Ejemplo
.
..
c:Program filespostgresql9.3bin> pg_dump -h localhost -p 5432 -U postgres test > D:backup.sql
...
Después del comando anterior, ingrese la contraseña de usuario “postgres” y verifique D:
Manejar para backup.sql
Archivo
En mi situación (PostgreSQL 9.1.21, Centos 6.7), el comando
runuser -l postgres -c 'pg_dump my_database > my_database.sql'
guardó el archivo aquí:
/var/lib/pgsql/my_database.sql
No estoy seguro si eso es true para otras versiones de Linux dists, CentOS y/o pgl. De acuerdo con la publicación de respuesta del autor de esta pregunta, esto es true, pero otros usuarios dijeron que el archivo de respaldo estaba en el directorio actual (una situación diferente de la mayoría de las personas que leen este hilo, por razones obvias). Bueno, espero que esto pueda ayudar a otros usuarios con el mismo problema.
Pd: si ese no es el camino para su situación, puede intentar (en Linux) encontrarlo usando el siguiente comando (como lo indica @Bohemian en los comentarios de esta pregunta), pero esto puede llevar un tiempo:
find / -name 'my_database.sql'
EDITAR: Traté de ejecutar el comando análogo en Ubuntu 12.04 (funciona en Ubuntu 18.04):
sudo -u postgres pg_dump my_database > my_database.sql
¡Y en este caso, el archivo se guardó en el directorio actual donde ejecuté el comando! Entonces, ambos casos pueden ocurrir en Linux, dependiendo del distrito específico en el que esté trabajando.
Reseñas y calificaciones
Nos puedes añadir valor a nuestro contenido tributando tu veteranía en los informes.