私はちょうどMac OS上のpostgres 10.2にアップグレードしました。データベースのコピーをダウンロードしてローカルに復元しようとしています。アップグレードの前に復元はうまくいきます。
走る
pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump
しかし、私はこのエラーを受けています:
pg_restore:[アーカイバ]ファイルヘッダのサポートされていないバージョン(1.13)
データベースは正常に動作しているようです。これはRailsアプリで、私はpg gemをアップグレードしました。私はrake db:create
とdb:migrate
をうまく動かすことができます。
Heroku
が1月3日に行ったように、あなたはあなたの地元のpostgresをアップグレードして2018-03-01から最後のセキュリティパッチを入手する必要があります。最後のリリース10.3
、9.6.8
、9.5.12
、9.4.17
、および9.3.22
のいずれかが必要です。
セキュリティパッチはこちらにあります https://www.postgresql.org/about/news/1834/ 。
それはパッチがpg_dumpを修正したようです、それはおそらく私たちがHerokuのダンプのためにそのパッチなしでもうpg_restoreを使うことができない理由です(パッチが適用された状態で)。
私は今日この同じ問題に遭遇しました、Heroku側で何かが変更されたかどうかわかりません、なぜならローカルで私は9.6を動かしていますがHeroku上の私のデータベースは9.4です。今日まで働いていました。)
MacでPostgres.app( https://postgresapp.com/ /)を使用している場合は、v2.1.3
を実行していることを確認してください(これを書いている時点で最新のバージョンです)。 Postgres.appをアップグレードすると、Postgresの最新のパッチリリースを入手できます(これは、現在発生しているミスマッチの原因となっている可能性があります - Herokuが最新のセキュリティパッチにアップグレードしており、ローカルコンピュータにはない場合があります)。
私はPostgres.appを2.1.0から2.1.3にアップグレードしなければなりませんでした、そしてそれは問題を解決しました。
昨日(2017年3月1日)以降、PostgreSQL 9.5上で実行されているHerokuからのバックアップの復元で問題が発生しました。
pg_restore: [archiver] unsupported version (1.13) in file header
PostgreSQLのバージョンを9.5.11から9.5.12にアップグレードすると問題が解決しました。
私がこの問題を最初に抱えたのは、Herokuデータベースを私のLocalに復元する方法です。
$ Rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>
(Johanが上記でコメントしたように)Ubuntuでpostgresqlを成功させないでアップグレードしようとしている人は、公式のPostgreSQLダウンロード指示に書かれているように、PostgreSQL aptリポジトリを使ってみてください: 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
私のための修正は both 私のPostgres.appの更新と私の地元の自作PostgreSQLの更新を含みました。
Canukの答えで私のPostgres.appを更新してください。
受け入れられた答えに対するgerry3のコメントで私の地元の自作PostgreSQLを更新してください。
brew upgrade postgresql
brew postgresql-upgrade-database
本番環境で使用しているバージョンに合わせてこれを修正するために、DBをローカルで新しいメジャーバージョンにアップグレードする(セキュリティパッチを適用する)ことはお勧めしません。
これにより、Herokuデータベースから復元したUbuntu 16.04でそれが修正されました。
最初に、diegoが述べたようにpostgresqlレポジトリを持っていることを確認してください。その後、アップグレードしたクライアントをインストールします。
Sudo apt-get update && Sudo apt-get install postgresql-client-10
Ubuntu 17.04または17.10の場合、PostgreSQLのzestyリポジトリはnot必要な更新されたクライアントを持っています。代わりに外部Postgresリポジトリを使用したいと思うでしょう)。
WindowsでpgAdmin 3を使用してこの問題を抱えていました。
PgAdmin 3からpgAdmin 4にアップグレードすると問題が解決しました。
提供されたダンプファイルを復元するためにPgAdminなどのサードパーティ製ツールを使用している場合、インストールされているPostgresのバージョンが最新であっても復元が成功しない場合があります。これは、サードパーティのツールが独自のバージョンのpg_restoreバイナリをバンドルしていることが多く、それが最新ではない可能性があるためです。 https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore
これは、pg_restore/pg_dumpが私に古いバージョンを与えていたUbuntu(16.04 LTS)の問題をpsqlから解決した方法です。
$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8
$ psql --version
psql (PostgreSQL) 9.5.14
問題は、複数のpgバージョンがインストールされていて、pg_restoreが以前のバージョンを指していたことです。
$ 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
修正は正しいバージョンを指す〜/ .postgresqlrcファイルを作成することです。
$ cat ~/.postgresqlrc
9.5 main *
これが行われると、pg_restoreは正しいバージョンを指し、コマンドは実行されます
ここに与えられた詳細: https://serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu
私はpgadmin IIIでこの問題に遭遇し、バイナリの場所を切り替えることでそれを修正することができました:
[ファイル]メニュー> [オプション]> [バイナリパス]を選択し、[PG bin path]をProgramFiles/pgadminではなくpostgresql/9.x/binに変更しました。復元はその後うまくいきました。
提供されたダンプファイルの復元をサポートしていない古いバージョンのpg_restoreバイナリを使用しています。最新のPostgresバージョンを使用していることを確認してください。これは次のリリースよりも新しい必要があります。 https://www.postgresql.org/about/news/1834/ (10.3、9.6.8、9.5.12 、9.4.17、および9.3.22)。
あなたが使用しているpg_restoreのバージョンを確認するには、pg_restore --versionを実行します。
提供されたダンプファイルを復元するためにPgAdminなどのサードパーティ製ツールを使用している場合、インストールされているPostgresのバージョンが最新であっても復元が成功しない場合があります。これは、サードパーティのツールが独自のバージョンのpg_restoreバイナリをバンドルしていることが多く、それが最新ではない可能性があるためです。
私は同じエラーに遭遇していました。私はpostgresql 10.3をローカルに更新しました、そしてそれは私にとって問題を解決しました。
Windowsの場合:
コマンドプロンプト(cmd
)を開き、場所C:\Program Files\PostgreSQL\9.6\bin
に移動して、次のコマンドを実行します。
pg_restore -U username -d dbname -1 filename.dump
pg_restore -U postgres -d app -1 G:\app09-07-2019.backup
それがあなたを助けることを願っています