Datagrip - 与 Heroku 的 PostgreSQL 连接不显示表

Posted

技术标签:

【中文标题】Datagrip - 与 Heroku 的 PostgreSQL 连接不显示表【英文标题】:Datagrip - PostgreSQL connection to Heroku not showing tables 【发布时间】:2020-03-14 14:24:18 【问题描述】:

我使用 Jetbrains Datagrip 连接到我的 Heroku PostgreSQL 数据库。认证成功,连接时不需要指定优势属性,当我填写主机、数据库、用户名和密码时,测试连接成功。

当我将查询写入控制台时,一切正常,例如:

SELECT * FROM users

在我的数据库中查找所有用户。

当我想在我的数据库结构中查看 时,我遇到了问题。他们没有出现。在项目树中,我只能看到 Database_name -> schemas -> public -> key_id_seq(图片:Project tree structure)。当我点击同步按钮时,我得到一个错误:

[42703] org.postgresql.util.PSQLException: ERROR: column t.relhasoids does not exist
  Position: .
Error encountered when performing Introspect database *db_name* schema public (details): ERROR: column t.relhasoids does not exist
  Position: .
ERROR: column t.relhasoids does not exist
  Position: 

我做错了吗?谢谢你。

【问题讨论】:

【参考方案1】:

Datagrip 已更新至版本 DataGrip 2019.3.3,内部版本 #DB-193.6494.42,于 2020 年 2 月 12 日构建,现在可以使用 :)

【讨论】:

【参考方案2】:

尝试使用“使用 JDBC 元数据进行自省”。当(我认为)我在 postgresql 服务器和 DataGrip 客户端之间存在版本不匹配时,这为我解决了这个问题。

在您的连接设置下 -> 选项选项卡 -> 选中 Introspect using JDBC metadata

根据https://www.jetbrains.com/help/datagrip/data-sources-and-drivers-dialog.html#optionsTab:

切换到基于 JDBC 的内省。

要检索有关数据库对象(数据库元数据)的信息,DataGrip 使用以下内省:

    本机自省器(某些 DBMS 可能不可用)。这 本机 introspector 使用 DBMS 特定的表和视图作为 元数据。它可以检索特定于 DBMS 的详细信息并生成更多 数据库对象的精确图片。

    基于 JDBC 的自省器(适用于所有 DBMS)。基于 JDBC 的 introspector 使用 JDBC 驱动程序提供的元数据。它可以 仅检索有关数据库对象及其的标准信息 属性。

考虑在原生的时候使用基于 JDBC 的检查器 自省失败或不可用。

当您的数据库服务器版本为 早于 DataGrip 支持的最低版本。

您可以尝试切换到基于 JDBC 的内省来修复问题 从您的数据库中检索数据库结构信息。 例如,当您的数据库或数据库中存在的模式 架构级别以下的对象不会显示在数据库工具中 窗口。

【讨论】:

【参考方案3】:

我的情况在这里不同。但我得到了类似的错误:

发生错误:

01:15:21 PM: Error: ERROR:  column rel.relhasoids does not exist
LINE 1: ...t_userbyid(rel.relowner) AS relowner, rel.relacl, rel.relhas...

我使用 pgadmin 3 连接到 Heroku 托管的 Postgresql。然后我配置 pgadmin 4。错误没有显示在上面。为了安装 pgadmin 4,我使用了 docker 方法。

docker pull dpage/pgadmin4
docker run -p 5050:80 -e "PGADMIN_DEFAULT_EMAIL=XXXX@Xmail.com" -e "PGADMIN_DEFAULT_PASSWORD=thirumal" -d dpage/pgadmin4

现在,打开浏览器并导航 http://localhost:5050/

【讨论】:

以上是关于Datagrip - 与 Heroku 的 PostgreSQL 连接不显示表的主要内容,如果未能解决你的问题,请参考以下文章

DataGrip 2020.1 安装与激活

JetBrains发布DataGrip 1.0——数据库与SQL领域中的瑞士军刀

如何将 datagrip 设置为与主机数据库相同的时区

DataGrip(数据库管理工具)的安装与破解

DataGrip 当前语句突出显示

DataGrip 打开 Microsoft SQL Server 数据库文件