最近在对项目的数据库进行备份还原时出现了一个问题:
pg_restore: [archiver] unsupported version (1.13) in file header
我一开始是在windows系统上进行开发,安装的PostgreSQL版本为9.6,后面我需要将数据转移到linux系统
上,因此我使用了pg_dump进行数据的导出,但是在linux上使用pg_restore时却报了以上错误,我在linux上
安装的PostgreSQL版本也为9.6,按理说版本是一致的,不该出现这个问题。
经过搜索我在StackOverflow上找到了此错误相关的问题:
Getting “[archiver] unsupported version (1.13) in file header” when running pg_restore
此问题下的答案是建议升级PostgreSQL版本,但是我还是不明白为什么两个环境下都是9.6版本,却会出现
版本不一致的情况。
后面我想到会不会是因为pg_restore版本存在差异,于是我在两个系统上都查看了下pg_restore的版本
pg_restore --version
在windows下的结果为9.6.14
而linux下的版本显示却为9.2(不记得小版本号,忘记截图了)
因此实际上在PostgreSQL同为9.6版本下,pg_resore的版本是不一致的,这就导致了此问题的产生
后续的解决方案为我将linux的PostgreSQL升级为了10,这个问题就没有出现了。