Acabei de atualizar para o postgres 10.2 no mac os que corresponde a 10.2 no heroku. Estou tentando baixar uma cópia do banco de dados e restaurá-lo localmente. Antes da atualização, a restauração funcionaria bem.
eu corro
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
mas estou recebendo este erro:
pg_restore: [archiver] versão não suportada (1.13) no cabeçalho do arquivo
O banco de dados parece estar funcionando bem. É um aplicativo de trilhos e atualizei as pg gems. Eu posso correr rake db:create
e db:migrate
muito bem.
fonte
brew upgrade postgresql
brew postgresql-upgrade-database
brew upgrade postgresql && brew postgresql-upgrade-database
realmente corrigem o problema, mas meus bancos de dados locais foram descartados ao longo do caminho. Faça backup deles se você tiver dados críticos!Corri para o mesmo problema hoje, não sei se algo mudou do lado do Heroku, porque localmente estou executando a 9.6, mas meu banco de dados no Heroku é 9,4, então não parecia ser a diferença de ponto de versão (ela estava trabalhando até hoje.)
Se você estiver usando o Postgres.app ( https://postgresapp.com/ ) em um Mac, verifique se está executando
v2.1.3
(no momento em que este artigo é a versão mais recente). Quando você atualiza o Postgres.app, obtém a versão mais recente do patch do Postgres (o que provavelmente está causando a incompatibilidade que você está enfrentando atualmente - o Heroku atualizou o último patch de segurança e a máquina local pode não o ter).fonte
Desde ontem (01/03/2018), também tivemos problemas para restaurar um backup do Heroku em execução no PostgreSQL 9.5:
A atualização da versão do PostgreSQL de 9.5.11 para 9.5.12 corrigiu o problema.
fonte
Na primeira vez que tive esse problema, veja como restaurei o banco de dados Heroku no meu local:
fonte
heroku pg:pull
. Mas essa não é uma correção adequada, pois você ainda não pode restaurar localmente um dump heroku anterior, também acho que isso utiliza o recurso de banco de dados ao vivo enquanto puxa.Para aqueles que estão tentando atualizar o postgresql no Ubuntu sem sucesso (como o comentado por Johan acima), tente usar o repositório apt do PostgreSQL, conforme indicado nas instruções oficiais de download do PostgreSQL: https://www.postgresql.org/download/linux/ubuntu /
fonte
A correção para mim envolveu tanto atualização do meu Postgres.app e a atualização do meu homebrew local PostgreSQL.
Atualize meu Postgres.app através da resposta do Canuk:
Atualize o PostgreSQL do meu homebrew local através do comentário de gerry3 na resposta aceita:
brew upgrade postgresql
brew postgresql-upgrade-database
fonte
Teve este problema no Windows usando o pgAdmin 3.
A atualização do pgAdmin 3 para o pgAdmin 4 resolveu o problema para mim.
fonte
pg_restore
êxito.Não recomendo atualizar seu banco de dados para uma nova versão principal localmente (aplique patches de segurança) apenas para corrigir isso, pois você deseja que ele corresponda à versão que você tem em produção.
Isso o corrigiu no Ubuntu 16.04, restaurando a partir de um banco de dados Heroku.
Primeiro, verifique se você possui o repositório postgresql como diego mencionado. Em seguida, instale o cliente atualizado.
sudo apt-get update && sudo apt-get install postgresql-client-10
Se você é Ubuntu 17.04 ou 17.10, observe que o repositório zesty do PostgreSQL não possui os clientes atualizados que você precisa. Você deseja usar o repositório xenial do Postgres.
fonte
Unable to locate package postgresql-client-10
quando faço isso #Aqui está como eu resolvi o problema no Ubuntu (16.04 LTS), em que o pg_restore / pg_dump me deu uma versão mais antiga, do psql
O problema é que tenho várias versões de pg instaladas e o pg_restore estava apontando para a versão anterior
A correção é criar um arquivo ~ / .postgresqlrc apontando para a versão correta
Feito isso, o pg_restore aponta para a versão correta e o comando segue
Detalhes fornecidos aqui: /server/610777/wrong-version-of-pg-dump-on-ubuntu
fonte
Encontrei esse problema no pgadmin III e consegui corrigi-lo alternando a localização dos binários:
Menu Arquivo> Opções> Caminhos binários e alterou "PG bin path" para postgresql / 9.x / bin em vez de ProgramFiles / pgadmin. Restaurar funcionou bem depois.
fonte
Você está usando uma versão antiga do binário pg_restore que não suporta a restauração do arquivo de despejo fornecido. Certifique-se de usar a versão mais recente do Postgres, que deve ser maior que a seguinte versão: https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 e 9.3.22).
Você pode verificar a versão do pg_restore que está usando executando o pg_restore --version.
Se você estiver usando uma ferramenta de terceiros, como o PgAdmin, para restaurar o arquivo de despejo fornecido, a restauração poderá não ter êxito, mesmo com a versão instalada do Postgres atualizada. Isso ocorre porque ferramentas de terceiros geralmente agrupam suas próprias versões do binário pg_restore, que podem não estar atualizadas.
fonte
Eu estava encontrando o mesmo erro. Atualizei para o postgresql 10.3 localmente e isso resolveu o problema para mim.
fonte
Para Windows:
Abra o prompt de comando (
cmd
), vá para o localC:\Program Files\PostgreSQL\9.6\bin
e execute estes comandos:Espero que ajude você
fonte
Corri no mesmo problema há 10 minutos e descobri esse segmento de 2005: https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com
Basicamente, o cara está dizendo que o arquivo de despejo está corrompido.
fonte