PostgreSQL / pgAdmin4 / dump server version mismatch using docker images
我的环境正在使用以下docker映像:
postgres:11
dpage / pgadmin4
在使用unRaid作为其操作系统的计算机上。
我的问题是我无法通过pgadmin4在postgres 11服务器上备份任何内容。 pgadmin4返回以下错误:
1 2
| pg_dump: server version: 11.2 (Debian 11.2-1.pgdg90+1); pg_dump version: 10.5
pg_dump: aborting because OF server version mismatch |
这里有一个类似的问题:PostgresSQL / pgAdmin4 /转储服务器版本不匹配
通过更改bin路径解决了问题,但是这些是docker映像,我无法找到Linux的Postgres 11的独立二进制文件。
存在与该确切问题有关的问题,但被拒绝并关闭:https://redmine.postgresql.org/issues/3843
我正在寻找任何帮助以获取/替换pgadmin4中的工具,以便它可以与postgres11正常对话。
现在解决的方法是使用pgadmin4的docker映像的快照版本。
根据pgadmin4Docker镜像的维护者戴夫·佩奇(Dave Page)的说法,当时它有能力做当时Alpine LinuxDocker镜像中可用的工具。它们是最近更新的,并已在快照映像的构建中使用。
正在使用pgAdmin 4打包的人与PostgreSQL v10客户端一起打包。
这就是您要抱怨的地方。
在这种情况下,显然是Dave Page。
Docker镜像的网站(https://hub.docker.com/r/dpage/pgadmin4/)建议:
Please report any issues through the pgAdmin support channels. See https://www.pgadmin.org/support/list/
所以我想正确的渠道是订阅该邮件列表并在那里表达您的投诉。
很抱歉,这是如此复杂,但是PostgreSQL领域中的各种工具是由不同的组维护的,尽管它们之间有些相关,每个组都有自己的通道。
- 上面链接的问题:redmine.postgresql.org/issues/3843来自pgadmin4发行委员会。他们已经意识到了这个问题,但是他们拒绝并关闭了该问题,因此尚未解决。显然降级pgadmin4是可行的(例如,什么?)。 At the moment, pgAdmin includes 10.5 binaries only. The current versions are 10.6 and 11.1. enterprisedb.com/download-postgresql-binaries Postgres从版本11.1开始不再提供二进制程序包,因此我无法从atm获得工具。因此,我正在寻找一种获取版本11.1工具的方法,以便将pgadmin4指向它们。
-
该错误已关闭,因为它是关于EDB安装程序而不是pgAdmin 4的,因此应该在EDB中提出。我建议您使用docker映像引发一个错误,这是另一回事。 EDB不再提供32位平台的安装程序,但这无关。
-
啊我懂了。这也许可以解释为什么较旧的版本可以正常工作并随其一起提供。我在这里打开了一个问题:redmine.postgresql.org/issues/4003专门用于docker版本。在此期间,我仍然在寻找所需二进制文件的解决方法。
-
您不应该使用该Redmine东西,而是写到邮件列表。但这也许就足够了。
-
Dave Page(负责pgadmin4 docker镜像的人)对此回应:The tools in pgAdmin are provided by the OS vendor in the Docker images. In this case, Apine Linux. They have recently been updated and 11.x is available in the snapshot builds and 4.3 (when released).
-
很酷,它将被修复。但这仍然是一个借口。 PostgreSQL核心团队成员Dave Page应该能够将新的pg_dump可执行文件和libpq.so添加到Docker映像中...
-
没错,但是我不想通过指出包含pg_dump的postgres-client软件包自pgadmin4的第4版之前就已在Arch Linux的repo(3.9及更高版本)中使他感到受攻击。或者指出他应该告诉另一个对此也有疑问的家伙。或者,我个人不喜欢在存在确实需要某种解决方案(即使其是临时解决)的合法问题时解决/拒绝问题。我使用临时解决方案做出了答复,但是我想说谢谢您劳伦兹,感谢您的宝贵时间和帮助。