无法在PostgreSQL中看到表格

时间:2016-05-31 10:23:25

标签: postgresql

我在PostgreSQL数据库中创建了一个Hibernate使用的模式,创建表,持久化实体等等。在我将Ubuntu 14.04更新为16.04之后,我再也看不到它了。但是,操作模式及其表中的数据的应用程序仍然可以执行此操作。

以下是使用sudo -u postgres psql登录后的一些命令的输出:

postgres=# \dt
No relations found.
postgres=# \dn
  List of schemas
  Name  |  Owner   
--------+----------
 jcat   | postgres
 public | postgres
(2 rows)

postgres=# \dn+
                          List of schemas
  Name  |  Owner   |  Access privileges   |      Description       
--------+----------+----------------------+------------------------
 jcat   | postgres | postgres=UC/postgres+| 
        |          | =UC/postgres         | 
 public | postgres | postgres=UC/postgres+| standard public schema
        |          | =UC/postgres         | 
(2 rows)

我尝试了以下几点,我发现了几个问题:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA jcat TO public;
grant ALL on SCHEMA jcat to public;

但我还是看不到我的桌子。任何提示?

编辑:这是所要求的信息。

postgres-# \d jcat.*
Did not find any relation named "jcat.*".
postgres-# show search_path
postgres-#

1 个答案:

答案 0 :(得分:0)

我怀疑您正在手动连接到与ORM或代码正在连接的数据库不同的数据库(或者至少我遇到了与您相同的问题,事实证明这就是我在做的事情)。

如果您使用良好的GUI工具在数据库中四处查看,以帮助您弄清楚表的实际结尾位置,则可以消除很多混乱。 PGAdmin4是我选择的工具,可能值得一试:https://www.pgadmin.org/download/pgadmin-4-windows/

通过psql连接时,您也可以尝试从命令行设置搜索路径。在Ubuntu上看起来像这样:

PGOPTIONS='-c search_path=jcat' psql -h your.host -U youruser