pg_restore:文件头中的[archiver]不支持的版本(1.13)

时间:2019-03-19 06:37:48

标签: postgresql pg-restore postgres-9.4

C:\Program Files (x86)\pgAdmin III\1.22\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "randd" --role "postgres" --no-password  --verbose "C:\Users\ranjeet\Desktop\RandDbackup19-3final.backup"
  

pg_restore:文件头中的[存档]不支持的版本(1.13)

2 个答案:

答案 0 :(得分:2)

此错误表示您在客户端上使用的是string = mydict.get('Cost1') + ( mydict.get('Cost2') + mydict.get('Cost3') ) / mydict.get('Revenue1') * 1.2' 的旧版本(因此是PostgreSQL)。转储是由安装了该更新的PostgreSQL的较新版本创建的,因此您的pg_restore不知道如何处理它。

存档版本1.13由commit 3d2aed664ee8271fd6c721ed0aa10168cda112ea于2018年2月推出。自点发行版10.3、9.6.8、9.5.12、9.4.17和9.3.22可用。

您应该升级PostgreSQL安装,尤其是因为此版本和此补丁包含与安全相关的错误修复。

答案 1 :(得分:0)

无需升级到最新的Postgres版本。

我们可以从任何Postgres版本备份和还原到以下任何版本。

在本地/开发机器上使用pg_dump以纯SQL格式创建备份,如下所示:

pg_dump -U postgres -W -F p test > test.sql

然后使用psql在远程计算机上还原转储

psql -U postgres -W -d test -f test.sql

它在Windows以及Linux环境下均可工作。

请注意,如果在远程计算机上还原时看到错误消息,例如“错误:无法识别的配置参数“ default_table_access_method””。您可以简单地忽略此消息,因为Postgres 12中引入了“ default_table_access_method”选项,同时在sql文件中添加了备份。