我在我的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-#
show search_path
会给你什么信息?\d jcat.*
会给你什么信息? - user330315;
结束 SQL 语句。你的show search_path
实际上没有运行。但是如果\d jcat.*
的结果是 "did not find any relation",这意味着该模式中没有表。如果你运行select table_name from information_schema.tables where table_schema = 'jcat';
,你会得到什么? - user330315show search_path;
显示 1 行:"$user", public
。您刚刚请求的 select 语句返回 0 行。 - Douglas De Rizzo Meneghetti