PostgreSQL - getting an error when listing databases with message "ERROR: column d.daticu does not exist"

PostgreSQL - getting an error when listing databases with message "ERROR: column d.daticu does not exist"

在 PostgreSQL 中列出数据库时可能导致以下错误的原因。

我在同一台机器上的不同端口和不同数据目录下有 2 个集群 运行。当我连接到其中一个时该命令工作正常但当我连接到另一个时失败。

一个集群使用 PostgreSQL 数据库社区版本,而另一个集群使用 EnterpriseDB Advanced Server 12.1.2 postgres 平台,但位于同一台机器上,但目录不同。

我的psql客户端版本是psql (EnterpriseDB) 12.1.2,数据库版本是PostgreSQL 12.1, compiled by Visual C++ build 1914, 64-bit

遇到的错误是:

postgres=# \l
ERROR:  column d.daticu does not exist
LINE 6:        d.daticu as "ICU",
               ^
HINT:  Perhaps you meant to reference the column "d.datacl".

您的服务器是开源 PostgreSQL,而 psql 是 EnterpriseDB 的分支。

EnterpriseDB 必须修改他们的 pg_database 以包含一个额外的列,并且查询 运行 for \l 引用了该列。现在开源 PostgreSQL 没有该列,所以查询失败。

使用来自与服务器相同的发行版的 psql 以获得最佳效果。