用于 Postgresql 迁移的 pg_dump/pg_restore 的理想版本

问题描述

我们计划将本地 Postgresql 9.6 迁移到 Azure Postgressql 11。在我们的开发人员机器上,我们有 pg_dump/pg_restore v12.2

(Source-Postgresql v9.6) --> dump/restore v12.2 --> (目标 Azure Postgresql v11)

我们遇到了上述设置的问题。

另一位开发者拥有 9.6 的 pg_dump/pg_restore 版本(与源匹配),并且顺利迁移到 Azure Postgresql v11。

我在 stackoverflow(还有其他地方)上读过,理想情况下 pg_dump/pg_restore 应该与目标 postgresql 版本匹配。

pg_dump/pg_restore 的理想版本应该是什么?是否匹配 Postgresql 的源或目标版本?

解决方法

匹配目标版本。如果您使用版本 X+1 的数据库导出工具,请不要期望生成的转储可以与数据库版本 X 的导入工具一起使用 - 较新的导出工具可能会发出仅在较新的数据库版本。另一方面,不能保证数据库导出工具的 X 版本将与数据库的 X-1 版本很好地配合。不过,机会要好得多。

如果您的目标版本是 11,请尝试在版本 11 中使用 pg_dump/pg_restore