如何从旧版本的 postgres 进行 pg_dump?

如何从旧版本的 postgres 进行 pg_dump?

我真的想不通。我以为新版本的 pg_dump 可以从旧版本导出。但是,我一直收到此错误:

pg_dump: error: aborting because of server version mismatch
pg_dump: detail: server version: 8.0.2; pg_dump version: 16.2

我正在使用 Macos 上本地安装的 Postgres 从正在运行的 RDS 实例导出数据。我尝试但未能找到旧版本的 pg_dump(可针对 Macos 进行编译,但仅找到 Windows)。

这个版本只是旧了?或者语义版本解析器可能坏了,它认为 16.2 < 8.0.2?

答案1

PostgreSQL 版本 8.0.2 是发布2005-04-11。最老的支持的AWS RDS PostgreSQL 版本为 9.6(已弃用)。

文档pg_dump当前的 PostgreSQL 16 来看,“支持最晚到版本 9.2 的服务器”。文档pg_dump目前支持的最旧的 PostgreSQL 12 来看,它表示“支持最低版本 8.0 的服务器”。

您可以pg_dump使用 docker 命令从 PostgreSQL 12 运行:

docker run postgres:12 pg_dump --version

相关内容