运行pg_restore时出现以下错误

pg_restore: error: unsupported version (1.15) in file header

Docker容器(运行图像postgres:14.10)提供的版本

root@c33fdb601eab:/# postgres --version
postgres (PostgreSQL) 14.10 (Debian 14.10-1.pgdg120+1)
root@c33fdb601eab:/# pg_restore --version
pg_restore (PostgreSQL) 14.10 (Debian 14.10-1.pgdg120+1)

那么,请问这个版本1.15是什么意思?它是否指示*.sql转储文件版本?如果是,我如何知道使用哪个pg_restore版本才能恢复它?

PS:显然已经有很多类似的帖子了,但我没有找到一个解释如何将转储文件版本与PG_Restore版本相匹配的答案.

推荐答案

表示自定义格式版本.我发现找出答案的最快方法是:

head <custom_dump_file>

它的顶部应该是这样的:

test"14.10 (Ubuntu 14.10-1.pgdg22.04+1) 16.1 (Ubuntu 16.1-1.pgdg22.04+1).

这不是自定义文件格式,它只是指示使用16.1版本的PG_DUMP转储了一个14.10的postgres实例.然后你就知道你必须使用16+版本的pg_Restore.换句话说,pg_Restore是向后兼容的,但不能恢复来自比其自身更新的pg_ump版本的文件.

Postgresql相关问答推荐

如何在gorm中创建一个可读但不可写的字段

转换失败:(—122.763091,49.04676)转换为地理(位置)""

Haskell仆人发布FormUrlEncode for(向量字符串)字段

使用Spring data jpa和CriteriaQuery在jsonb列中搜索操作

在PostGreSQL中获取最近日期的项目

在Postgre中的链接服务器上执行远程查询

尽管违反了部分索引约束,Postgres 插入仍在发生

如何在 postgres where 子句中使用 or 对条件进行组合或分组

使用正则表达式计算 SQL 查询中 WHERE 过滤器的数量

当我写 SELECT ~1;在 Postgresql 上它给了我 -2 结果.这是什么原因?它一直持续〜4和-5等

PostgreSQL错误致命:角色 username不存在

计算 PostgreSQL 中给定 GPS 坐标的日出和日落时间

Java - 日期保存为前一天

PostgreSQL ORDER BY 问题 - 自然排序

整数除法返回 0

如何在数据库表中查找重复条目?

获取 psycopg2 count(*) 结果数

PL/pgSQL 执行与执行

如何在 JPA 中使用 Postgres JSONB 数据类型?

在 Postgres 9.0+ 中使用 PL/pgSQL 在表上循环