Estamos cambiando de host y el anterior proporcionó un volcado de SQL de la base de datos PostgreSQL de nuestro sitio.
Ahora, estoy 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 PostgreSQL 9 que he configurado.
Intenté pgAdmin III pero parece que no puedo encontrar una función de 'importación'. Así que acabo de abrir el editor de SQL y pegué el contenido del volcado allí y lo ejecuté, crea las tablas pero sigue dándome errores cuando intenta ingresar 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 hacer esto con el símbolo del sistema, pero no puedo encontrar el comando que necesito.
Si lo hago
psql mydatabase < C:/database/db-backup.sql;
Me sale 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?
fuente
ERROR: syntax error at or near "t"
. Resultó que solo había importado un esquema parcial y, por lo tanto, unaCREATE TABLE
declaración anterior en el script había fallado. Mire a través de la salida completa de la importación para encontrarla.Respuestas:
Ese es el comando que estás buscando.
Cuidado:
databasename
debe crearse antes de importar. Eche un vistazo al Capítulo 23. Documentos de PostgreSQL. Copia de seguridad y restauración .fuente
-f
interruptor (o--file
)Aquí está el comando que estás buscando.
fuente
pg_restore -h hostname -d dbname -U username filename.sql
Creo que quieres ejecutar en psql:
fuente
Eso funcionó para mí:
fuente
No estoy seguro de si esto funciona para la situación del OP, pero descubrí que ejecutar el siguiente comando en la consola interactiva fue la solución más flexible para mí:
Solo asegúrese de estar conectado a la base de datos correcta. Este comando ejecuta todos los comandos SQL en el archivo especificado.
fuente
psql
línea de comando. ¡Gracias!Funciona bastante bien, en la línea de comando, se requieren todos los argumentos, -W es para contraseña
fuente
Solo por diversión, si su volcado está comprimido, puede hacer algo como
gunzip -c filename.gz | psql dbname
Como Jacob mencionó, los documentos de PostgreSQL describen todo esto bastante bien.
fuente
Yo suelo:
Espero que esto ayude a alguien.
fuente
Puedes hacerlo en pgadmin3. Descarte los esquemas que contiene su volcado. Luego haga clic derecho en la base de datos y elija Restaurar. Luego puede buscar el archivo de volcado.
fuente
Noté que muchos ejemplos son demasiado complicados para localhost donde solo existen usuarios postgres sin contraseña en muchos casos:
fuente
asegúrese de que se haya creado la base de datos a la que desea importar, luego puede importar el volcado con
Si desea sobrescribir toda la base de datos, primero suelte la base de datos
y luego recrearlo con
fuente
Intenté muchas soluciones diferentes para restaurar mi copia de seguridad de postgres. Me encontré con problemas de permiso denegado en MacOS, no parecía haber soluciones.
Así es como lo hice funcionar:
Postgres viene con Pgadmin4. Si usa macOS, puede presionar
CMD
+SPACE
y escribirpgadmin4
para ejecutarlo. Esto abrirá una pestaña del navegador en Chrome.Pasos para obtener pgadmin4 + copia de seguridad / restauración
1. Crear la copia de seguridad
Haga esto haciendo clic derecho en la base de datos -> "copia de seguridad"
2. Déle un nombre al archivo.
Al igual
test12345
. Haga clic en copia de seguridad. Esto crea un volcado de archivo binario, no está en un.sql
formato3. Vea dónde se descargó
Debería haber una ventana emergente en la parte inferior derecha de la pantalla. Haga clic en la página "más detalles" para ver dónde se descargó su copia de seguridad
4. Encuentra la ubicación del archivo descargado
En este caso, es
/users/vincenttang
5. Restaurar la copia de seguridad de pgadmin
Suponiendo que realizó los pasos 1 a 4 correctamente, tendrá un archivo binario de restauración. Puede llegar un momento en que su compañero de trabajo quiera usar su archivo de restauración en su máquina local. Que dicha persona vaya a pgadmin y restaure
Haga esto haciendo clic derecho en la base de datos -> "restaurar"
6. Seleccione el buscador de archivos
Asegúrese de seleccionar la ubicación del archivo manualmente, NO arrastre y suelte un archivo en los campos del cargador en pgadmin. Porque te encontrarás con permisos de error. En su lugar, busque el archivo que acaba de crear:
7. Encuentra dicho archivo
Puede que tenga que cambiar el filtro en la parte inferior derecha a "Todos los archivos". Busque el archivo a partir de entonces, desde el paso 4. Ahora presione el botón "Seleccionar" en la esquina inferior derecha para confirmar
8. Restaurar dicho archivo
Verá esta página nuevamente, con la ubicación del archivo seleccionado. Sigue adelante y restauralo
9. Éxito
Si todo está bien, la parte inferior derecha debería mostrar un indicador que muestra una restauración exitosa. Puede navegar a sus tablas para ver si los datos se han restaurado correctamente en cada tabla.
10. Si no tuvo éxito:
Si el paso 9 falla, intente eliminar su antiguo esquema público en su base de datos. Vaya a "Herramienta de consulta"
Ejecute este bloque de código:
Ahora intente los pasos 5 a 9 nuevamente, debería funcionar
Resumen
Así es como tuve que hacer una copia de seguridad / restaurar mi copia de seguridad en Postgres, cuando tuve problemas de permisos de error y no pude iniciar sesión como superusuario. O establezca credenciales para lectura / escritura usando
chmod
para carpetas. Este flujo de trabajo funciona para un volcado de archivo binario predeterminado de "Personalizado" de pgadmin. Supongo que.sql
es lo mismo, pero aún no he probado esofuente