我在我的 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)
Run Code Online (Sandbox Code Playgroud)
我从我发现的几个问题中尝试了以下方法:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA jcat TO public;
grant ALL on SCHEMA jcat to public;
Run Code Online (Sandbox Code Playgroud)
但我仍然看不到我的桌子。任何提示?
编辑:这里是要求的信息。
postgres-# \d jcat.*
Did not find any relation named "jcat.*".
postgres-# show search_path
postgres-#
Run Code Online (Sandbox Code Playgroud)
我怀疑您手动连接到的数据库与您的 ORM 或代码所连接的数据库不同(或者至少我遇到了与您相同的问题,事实证明这就是我正在做的事情)。
如果您使用一个好的 GUI 工具来查看数据库以帮助您找出表的实际结束位置,那么它可以帮助您消除很多混乱。PGAdmin4 是我选择的工具,可能值得一试:https ://www.pgadmin.org/download/pgadmin-4-windows/
通过 psql 连接时,您还可以尝试从命令行设置搜索路径。在 Ubuntu 上看起来像这样:
PGOPTIONS='-c search_path=jcat' psql -h your.host -U youruser
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13789 次 |
| 最近记录: |