gpt4 book ai didi

postgresql - 使 pg_dump 目标成为旧版本 pg_restore 的语法

转载 作者:行者123 更新时间:2023-12-04 08:54:35 27 4
gpt4 key购买 nike

我在 heroku 上使用了一个 postgres 12 数据库,在我的 macOS 工作站上安装了 postgres 11。当我尝试恢复 Heroku 提供给我的文件时,我得到

$ pg_restore --verbose --no-owner -h localhost -d myapp_development latest-heroku.dump
pg_restore: [archiver] unsupported version (1.14) in file header
根据 Heroku's documentation ,他们听起来好像唯一的选择是,如果 Heroku 用户想要在本地访问他们的数据,他们必须运行 postgres 12?这看起来很傻。
深挖 Postgres docs on this topic , 他们说:

pg_dump can also dump from PostgreSQL servers older than its own version. (Currently, servers back to version 8.0 are supported.)


这当然听起来应该可以指定 pg_restore 的目标版本。供 pg_dump 使用?但是在互联网上似乎没有任何地方有这样的例子。包括 postgres 文档本身,它没有提供有关将用于将“转储版本返回到版本 8.0”的语法的线索。
有没有人用过 pg_restore与 postgres 11 一起安装以从 pg_dump 导入转储安装了 postgres 12?

最佳答案

我想出的最佳答案是通过 brew upgrade libpq 升级.本次升级psql , pg_dumppg_restore到最新版本(要链接它们,我必须使用 brew link --force libpq )。一旦升级到位,我就可以从 heroku 上的 postgres 12 数据库中转储,并在本地导入我的 postgres 11 数据库。我想我可能需要转储到原始 SQL 才能工作,但幸好基于 pg-12 的 pg_restore能够毫无问题地导入我的 postgres 11 数据库。

关于postgresql - 使 pg_dump 目标成为旧版本 pg_restore 的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63911087/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com