gpt4 book ai didi

postgresql - 在 pgAdmin 中隐藏模板数据库

转载 作者:行者123 更新时间:2023-11-29 13:44:29 31 4
gpt4 key购买 nike

为了更改 PostgreSQL 数据库模板的排序规则,我删除了 template1 并使用“正确”的排序规则重新创建了它。因此,我从这个 question 中得到灵感.

现在一切正常,但现在新数据库模板 template1 已列在 TreeView 的可用数据库中。我比较了两台服务器的数据库 pg_database(一个列出了数据库 template1,一个没有),但是数据库 template1 的参数值是相同的。

我想在 TreeView 中隐藏这个数据库。谁能解决这个问题?

编辑:this one没有让我更进一步

(PostgreSQL 9.6,pgAdmin 1.22)

最佳答案

PgAdmin 使用 following condition是否在树中显示数据库:

/* Condition used to show database */
if (settings->GetShowSystemObjects() || !database->GetSystemObject())
(...)

/* Function called above */
bool pgDatabase::GetSystemObject() const
{
if (server)
{
if (this->GetName() == wxT("template0")) return true;
return (this->GetOid() <= server->GetLastSystemOID());
}
else
{
return false;
}
}

除非您标记了“在 TreeView 中显示系统对象”选项,否则我猜您的模板 1 的 oid 大于 LastSystemOID (pg_database.datlastsysoid)。在这种情况下,您有三个选择:

  1. 使用正确的排序规则重建您的集群;
  2. 接受这一点;
  3. 或者,假设您不在生产环境中,请使用pg_database.datlastsysoid 并等待副作用。

关于postgresql - 在 pgAdmin 中隐藏模板数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50671174/

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