Datagrip - 连接Heroku的PostgreSQL未显示表格

3
我用Jetbrains Datagrip连接到了我的Heroku PostgreSQL数据库。身份验证成功,连接时我不需要指定优势属性,当我填写了主机、数据库、用户名和密码后,测试连接成功。
当我在控制台中编写查询时,一切都正常,例如:
SELECT * FROM users

在我的数据库中查找所有用户。
我有一个问题,当我想要查看数据库结构中的表时。它们没有出现。在项目树中,我只能看到 Database_name -> schemas -> public -> key_id_seq(图片: 项目树结构)。当我点击同步按钮时,会出现错误:
[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: 

我做错了什么吗?谢谢。
3个回答

2
尝试使用“使用JDBC元数据进行内省”。当我认为postgresql服务器和DataGrip客户端之间存在版本不匹配时,这个方法解决了我的问题。
在连接设置下的选项标签中勾选“使用JDBC元数据进行内省”。
根据https://www.jetbrains.com/help/datagrip/data-sources-and-drivers-dialog.html#optionsTab所述:
切换到基于JDBC的内省器。 为了检索数据库对象(DB元数据)的信息,DataGrip使用以下内省器:
  1. 本地内省器(某些DBMS可能不可用)。本地内省器使用特定于DBMS的表和视图作为元数据源。它可以检索特定于DBMS的详细信息并生成更精确的数据库对象图片。

  2. JDBC-based内省器(适用于所有DBMS)。JDBC-based内省器使用JDBC驱动程序提供的元数据。它只能检索有关数据库对象及其属性的标准信息。

当本地内省器失败或不可用时,请考虑使用基于JDBC的内省器。 当您的数据库服务器版本早于DataGrip支持的最低版本时,本地内省器可能会失败。 您可以尝试切换到基于JDBC的内省器来解决从数据库中检索数据库结构信息的问题。例如,当在Database工具窗口中未显示存在于数据库中的模式或模式以下的数据库对象时。

1

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


0

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

发生了一个错误:

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/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接