我在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-#
答案 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