tutorial postgres locally cli backups postgresql heroku pg-restore

postgresql - postgres - Obtener "[archiver] versión no compatible(1.13) en el encabezado del archivo" cuando se ejecuta pg_restore



restore backup postgresql heroku (14)

Acabo de actualizar a Postgres 10.2 en Mac OS que coincide con 10.2 en Heroku. Estoy tratando de descargar una copia de la base de datos y restaurarla localmente. Antes de la actualización, la restauración funcionaría bien.

Corro

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump

pero recibo este error:

pg_restore: [archiver] versión no compatible (1.13) en el encabezado del archivo

La base de datos parece estar funcionando bien. Es una aplicación de rieles y actualicé las gemas pg. Puedo ejecutar rake db:create y db:migrate muy bien.


Así es como resolví el problema en Ubuntu (16.04 LTS) donde pg_restore / pg_dump me dio una versión anterior, de psql

$ pg_restore --version pg_restore (PostgreSQL) 9.4.8 $ psql --version psql (PostgreSQL) 9.5.14

El problema es que tengo varias versiones de pg instaladas, y pg_restore apuntaba a la versión anterior

$ pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 9.4 main 5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log 9.5 main 5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

La solución es crear un archivo ~ / .postgresqlrc que apunte a la versión correcta

$ cat ~/.postgresqlrc 9.5 main *

Una vez hecho esto, pg_restore apunta a la versión correcta y el comando pasa por

Detalles dados aquí: https://serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu


Debe actualizar sus postgres locales para obtener el último parche de seguridad del 01-03-2018, como lo hizo Heroku el 1 de marzo. Necesita una de las últimas versiones 10.3 , 9.6.8 , 9.5.12 , 9.4.17 y 9.3.22 .

El parche de seguridad se puede encontrar aquí https://www.postgresql.org/about/news/1834/ .

Parece que el parche modificó pg_dump, probablemente es por eso que ya no podemos usar pg_restore sin ese parche para el volcado de Heroku (con el parche aplicado).


Desde ayer (01/03/2018) también tuvimos problemas para restaurar una copia de seguridad de Heroku que se ejecuta en PostgreSQL 9.5:

pg_restore: [archiver] unsupported version (1.13) in file header

La actualización de nuestra versión de PostgreSQL de 9.5.11 a 9.5.12 solucionó el problema.


Encontré este problema en pgadmin III y pude solucionarlo cambiando la ubicación de los binarios:

Menú Archivo> Opciones> Rutas binarias, luego cambió "Ruta bin bin" a postgresql / 9.x / bin en lugar de ProgramFiles / pgadmin. Restaurar funcionó bien después.


Está utilizando una versión anterior del binario pg_restore que no admite la restauración del archivo de volcado proporcionado. Asegúrese de utilizar la última versión de Postgres, que debe ser superior a la siguiente versión: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 y 9.3.22).

Puede verificar la versión de pg_restore que está utilizando ejecutando pg_restore --version.

Si está utilizando una herramienta de terceros, como PgAdmin, para restaurar el archivo de volcado proporcionado, la restauración puede no tener éxito incluso con la versión de Postgres instalada actualizada. Esto se debe a que las herramientas de terceros a menudo incluyen sus propias versiones del binario pg_restore, que pueden no estar actualizadas.


Estaba encontrando el mismo error. Actualicé a postgresql 10.3 localmente, y eso solucionó el problema para mí.


La primera vez que tuve este problema, así es como restauré la base de datos Heroku a mi Local:

$ rails db:drop $ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>


La solución para mí implicó tanto actualizar mi Postgres.app como actualizar mi homebrew local PostgreSQL.

Actualice mi Postgres.app a través de la respuesta de Canuk:

Abra Postgres.app> Buscar actualizaciones ...

Actualice mi postgreSQL local de cerveza casera a través del comentario de gerry3 sobre la respuesta aceptada:

brew upgrade postgresql brew postgresql-upgrade-database



Me encontré con este mismo problema hoy, no sé si algo cambió en el lado de Heroku, porque localmente estoy ejecutando 9.6 pero mi base de datos en Heroku es 9.4, por lo que no parece ser sobre la diferencia de punto de versión ( estuvo trabajando hasta hoy.)

Si está utilizando Postgres.app ( https://postgresapp.com/ ) en una Mac, asegúrese de estar ejecutando v2.1.3 (a partir de este escrito, esa es la versión más nueva). Cuando actualiza Postgres.app, obtiene la versión de parche más reciente de Postgres (lo que probablemente está causando la falta de coincidencia que está experimentando actualmente: Heroku ha actualizado para el último parche de seguridad y es posible que su máquina local no lo tenga).

Tuve que actualizar Postgres.app de 2.1.0 a 2.1.3 y resolvió el problema.


No recomiendo actualizar su base de datos a una nueva versión principal localmente (aplique parches de seguridad) solo para arreglar esto, ya que desea que coincida con la versión que tenga en producción.

Esto lo solucionó en Ubuntu 16.04, restaurando desde una base de datos Heroku.

Primero, asegúrese de tener el repositorio postgresql como se menciona en diego. Luego instale el cliente actualizado.

sudo apt-get update && sudo apt-get install postgresql-client-10

Si tiene Ubuntu 17.04 o 17.10, tenga en cuenta que el repositorio de PostgreSQL no tiene los clientes actualizados que necesita. En su lugar, querrá utilizar el repositorio xenial de Postgres.


Para aquellos que intentan actualizar postgresql en Ubuntu sin éxito (como comentó Johan anteriormente), intente usar el repositorio apto de PostgreSQL, como se indica en las instrucciones oficiales de descarga de PostgreSQL: https://www.postgresql.org/download/linux/ubuntu/

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update


Para ventanas:

Abra el símbolo del sistema ( cmd ), luego vaya a la ubicación C:/Program Files/PostgreSQL/9.6/bin y ejecute estos comandos:

pg_restore -U username -d dbname -1 filename.dump pg_restore -U postgres -d app -1 G:/app09-07-2019.backup

Espero que te ayude


Tuve este problema en Windows usando pgAdmin 3.

La actualización de pgAdmin 3 a pgAdmin 4 resolvió el problema para mí.

Si está utilizando una herramienta de terceros, como PgAdmin, para restaurar el archivo de volcado proporcionado, la restauración puede no tener éxito incluso con la versión de Postgres instalada actualizada. Esto se debe a que las herramientas de terceros a menudo incluyen sus propias versiones del binario pg_restore, que pueden no estar actualizadas. https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore