Solución:
No intente utilizar PgAdmin-III para esto. Usar pg_dump
y pg_restore
directamente si es posible.
Usa la versión de pg_dump
desde el servidor de destino para volcar el servidor de origen. Entonces, si va de (digamos) 8.4 a 9.2, usará 9.2 pg_dump
para crear un vertedero. Si crea un -Fc
volcado de formato personalizado (recomendado) que puede usar pg_restore
para aplicarlo al nuevo servidor de base de datos. Si realizó un volcado SQL regular, puede aplicarlo con psql
.
Consulte el manual sobre cómo actualizar su clúster de PostgreSQL.
Ahora, si estás intentando degradar, eso es un lío completamente separado.
Te resultará difícil crear un volcado SQL que funcione en alguna versión de PostgreSQL. Supongamos que creó una VISTA que usa un WITH
consulta. Eso no funcionará cuando se restaure a PostgreSQL 8.3 porque no es compatible WITH
. Hay muchos otros ejemplos. Si debe admitir versiones antiguas de PostgreSQL, realice su desarrollo en la versión más antigua que aún admite y luego exporte los volcados para que se carguen las versiones más nuevas. No se puede desarrollar con cordura en una nueva versión y exportar para versiones antiguas, no funcionará bien en todo caso.
Más preocupante, desarrollar en una versión anterior tampoco siempre le dará un código que funcione en la nueva versión. Ocasionalmente se agregan nuevas palabras clave cuando se introduce soporte para nuevas características de especificación. A veces, los problemas se solucionan de forma que afecten al código de usuario. Por ejemplo, si desarrollara en el 8.2 (antiguo y sin soporte), tendría muchos problemas con conversiones implícitas de texto en 8.3 y superior.
Su mejor opción es probar en todas las versiones compatibles. Considere la posibilidad de configurar pruebas automatizadas con algo como Jenkins CI. Sí, eso es una molestia, pero es el precio del software lo que mejora con el tiempo. Si Pg mantuviera una compatibilidad perfecta hacia atrás y hacia adelante, nunca mejoraría.
Exportar / Importar con pg_dump y psql
1.Configure PGPASSWORD
export PGPASSWORD='123123123';
2.Exportar DB con pg_dump
pg_dump -h <<host>> -U <<username>> <<dbname>> > /opt/db.out
/opt/db.out es la ruta de volcado. Puede especificar el suyo propio.
3. Luego, configure nuevamente la PGPASSWORD de usted en otro host. Si el host es el mismo o la contraseña es la misma, no es necesario.
4.Importe la base de datos en su otro host
psql -h <<host>> -U <<username>> -d <<dbname>> -f /opt/db.out
Si el nombre de usuario es diferente, busque y reemplace con su nombre de usuario local en el archivo db.out. Y asegúrese de que se reemplace el nombre de usuario y no los datos.
Si aún desea utilizar PGAdmin, consulte el procedimiento a continuación.
Exportar DB con PGAdmin:
Seleccione DB y haga clic en Exportar.
- Opciones de archivo
- Nombre el nombre del archivo DB para su directorio local
- Seleccionar formato – Normal
- Ignorar las opciones de volcado n. ° 1
- Opciones de volcado n. ° 2
- Cheque
Use Insert Commands
- Cheque
- Objetos
- Desmarque las tablas si no quiere ninguna
Importar DB con PGAdmin:
- Crear nueva base de datos.
- Manteniendo la base de datos seleccionada, haga clic en
Menu->Plugins->PSQL Console
-
Escriba el siguiente comando para importar DB
i /path/to/db.sql
Si desea exportar el esquema y los datos por separado.
Exportar esquema
- Opciones de archivo
- Nombre del archivo de esquema en su directorio local
- Seleccionar formato – Normal
- Opciones de volcado n. ° 1
- Cheque
Only Schema
- Cheque
Blobs
(Marcado por defecto)
- Cheque
Exportar datos
- Opciones de archivo
- Nombre del archivo de datos en su directorio local
- Seleccionar formato – Normal
- Opciones de volcado n. ° 1
- Cheque
Only Data
- Cheque
Blobs
(Marcado por defecto)
- Cheque
- Opciones de volcado n. ° 2
- Cheque
Use Insert Commands
- Cheque
Verbose messages
(Marcado por defecto)
- Cheque
Nota: Se necesita tiempo para exportar / importar según el tamaño de la base de datos y con PGAdmin agregará algo más de tiempo.