Estamos cambiando de host y el antiguo nos proporcionó un volcado SQL de la base de datos PostgreSQL de nuestro sitio.
Ahora, I'm tratando de configurar esto en un servidor WAMP local para probar esto.
El único problema es que no tengo idea de cómo importar esta base de datos en el PostgreSQL 9 que he configurado.
Intenté con pgAdmin III pero parece que no puedo encontrar una función de "importación". Así que simplemente abrí el editor de SQL y pegué allí el contenido del volcado y lo ejecuté, crea las tablas pero me sigue dando errores cuando intenta meter los datos.
ERROR: syntax error at or near "t"
LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view...
The lines:
COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin;
t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ...
También he intentado hacerlo con el símbolo del sistema pero no encuentro el comando que necesito.
Si hago
psql mydatabase < C:/database/db-backup.sql;
Obtengo el error
ERROR: syntax error at or near "psql"
LINE 1: psql mydatabase < C:/database/db-backu...
^
¿Cuál es la mejor manera de importar la base de datos?
psql databasename < data_base_dump
Ese es el comando que está buscando.
Cuidado: databasename
debe ser creado antes de la importación.
Echa un vistazo al PostgreSQL Docs Chapter 23. Backup and Restore.
Creo que se quiere ejecutar en psql:
\i C:/database/db-backup.sql
Eso funcionó para mí:
sudo -u postgres psql db_name < 'file_path'
No estoy seguro de que esto funcione para la situación de OP', pero encontré que ejecutar el siguiente comando en la consola interactiva era la solución más flexible para mí:
\i 'path/to/file.sql'
Sólo asegúrate de que ya estás conectado a la base de datos correcta. Este comando ejecuta todos los comandos SQL en el archivo especificado.
Sólo por diversión, si tu vertedero está comprimido puedes hacer algo como
gunzip -c nombre de archivo.gz | psql dbname
Como Jacob mencionó, los [documentos de PostgreSQL][1] describen todo esto bastante bien.
[1]: http://www.postgresql.org/docs/8.0/static/backup.html "PostgreSQL docs"
Probé muchas soluciones diferentes para restaurar mi copia de seguridad de Postgres. Me encontré con problemas de denegación de permiso en MacOS, ninguna solución parecía funcionar.
Así es como conseguí que funcionara:
Postgres viene con Pgadmin4. Si usas MacOS puedes presionar "CMD" + "SPACE" y escribir "pgadmin4" para ejecutarlo. Esto abrirá una pestaña del navegador en chrome.
...y se abrirá una pestaña del navegador en chrome; Si te encuentras con errores al hacer funcionar pgadmin4, intenta "matar a pgAdmin4" en tu terminal, y luego vuelve a intentarlo.
Crear la copia de seguridad
Hazlo haciendo clic con el botón derecho del ratón en la base de datos..; ...y luego haz una copia de seguridad;
[![introduzca la descripción de la imagen aquí][1]][1]
Dale un nombre al archivo.
Como "test12345".
Haz una copia de seguridad.
Esto crea un volcado de archivos binarios, no en formato .sql
.
[![introduzca la descripción de la imagen aquí][2]][2]
Mira donde se descargó
Debería haber un popup en la parte inferior derecha de su pantalla. Haga clic en el "más detalles" para ver dónde se descargó su copia de seguridad
[![introduzca la descripción de la imagen aquí][3]][3]
Encuentra la ubicación del archivo descargado
En este caso, es `/usuarios/vincenttang'...
[![introduzca la descripción de la imagen aquí][4]][4]
Restaurar la copia de seguridad de pgadmin
Asumiendo que hiciste los pasos 1 a 4 correctamente, tendrás un archivo binario restaurado. Puede que llegue el momento en que tu compañero de trabajo quiera usar tu archivo de restauración en su máquina local. Haz que dicha persona vaya a pgadmin y restaure
Hazlo haciendo clic con el botón derecho del ratón en la base de datos..; ...restaurar..;
[![introduzca la descripción de la imagen aquí][5]][5]
Seleccione el buscador de archivos
Asegúrate de seleccionar la ubicación del archivo manualmente, NO arrastrar y soltar un archivo en los campos de carga en pgadmin. Porque te encontrarás con permisos de error. En su lugar, encuentra el archivo que acabas de crear:
[![introduce la descripción de la imagen aquí][6]][6]
Encuentra dicho archivo
Puede que tengas que cambiar el filtro de la parte inferior derecha a "Todos los archivos". Encuentra el archivo a partir del paso 4. Ahora presiona la parte inferior derecha "Seleccionar" para confirmar
[![introduzca la descripción de la imagen aquí][7]][7]
Restaurar dicho archivo
Verás esta página de nuevo, con la ubicación del archivo seleccionada. Adelante y restáurelo
[![introduzca la descripción de la imagen aquí][8]][8]
Si todo va bien, en la parte inferior derecha debería aparecer un indicador que muestre una restauración exitosa. Puede navegar hasta sus tablas para ver si los datos han sido restaurados correctamente en cada tabla.
Si no fue... 39; no tuvo éxito:
Si el paso 9 falla, intente borrar su antiguo esquema público en su base de datos. Vaya a "Herramienta de consulta"
[![introduzca la descripción de la imagen aquí][9]][9]
Ejecute este bloque de código:
CASCADA pública del ESQUEMA DE CAÍDA;
CREAR ESQUEMA público;
[![introduzca la descripción de la imagen aquí][10]][10]
Ahora intenta los pasos 5 a 9 de nuevo, debería funcionar
Así es como tuve que hacer una copia de seguridad/restaurar mi copia de seguridad en Postgres, cuando tuve problemas de permiso de error y no pude entrar como superusuario.
O establecer las credenciales de lectura/escritura usando "chmod" para las carpetas.
Este flujo de trabajo funciona para un volcado de archivos binarios por defecto de "Custom"
de pgadmin.
Asumo que .sql
es la misma forma, pero aún no he probado eso
[1]: https://i.stack.imgur.com/2hQt9.png [2]: https://i.stack.imgur.com/FyEZm.png [3]: https://i.stack.imgur.com/5cXqM.png [4]: https://i.stack.imgur.com/vJiyy.png [5]: https://i.stack.imgur.com/bAUhb.png [6]: https://i.stack.imgur.com/0FL3F.png [7]: https://i.stack.imgur.com/woFcW.png [8]: https://i.stack.imgur.com/i7cTv.png [9]: https://i.stack.imgur.com/bqmyP.png [10]: https://i.stack.imgur.com/BaHyr.png