我最近在我的Mac上安装了postgres并从我们的公共网站上加载了一个我试图在本地复制的转储。 pg_restore似乎是成功的,我可以在phpPgAdmin中看到我的所有表和用户权限。它们看起来都很正常,我可以浏览数据。但是,当我通过psql访问数据库时,我找不到任何关系。类似地,我有python脚本访问这个数据库,他们也找不到任何表。
我不知道该怎么做。
以下是我完成的一些psql命令:
> psql -U mgd_dbo pub_mgd
psql (9.3.4)
Type "help" for help.
pub_mgd=# \d
No relations found.
pub_mgd=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
------------+------------+----------+------------------+-------+-------------------------
postgres | postgres | UTF8 | C | C | =CTc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | mgd_dbo=CTc/postgres +
| | | | | mgd_public=CTc/postgres
pub_fe | postgres | LATIN9 | en_US.ISO8859-15 | C | =CTc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | mgd_dbo=CTc/postgres +
| | | | | mgd_public=CTc/postgres
pub_mgd | postgres | LATIN9 | en_US.ISO8859-15 | C | =CTc/postgres +
| | | | | postgres=CTc/postgres +
| | | | | mgd_dbo=CTc/postgres +
| | | | | mgd_public=CTc/postgres
template0 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
(5 rows)
pub_mgd=# \dn+
List of schemas
Name | Owner | Access privileges | Description
--------+----------+----------------------+------------------------
mgd | mgd_dbo | mgd_dbo=UC/mgd_dbo +|
| | mgd_public=U/mgd_dbo |
public | postgres | postgres=UC/postgres+| standard public schema
| | =UC/postgres |
(2 rows)
pub_mgd是我加载的数据库。 mgd_public和mgd_dbo是我们脚本使用的两个不同用户(mgd_public是只读用户)。 我尝试过两个用户,甚至作为postgres用户。然而,结果是一样的,没有关系。
我甚至试图看看phpPgAdmin是否以某种方式命中了一个不同的postgres服务器,所以我通过它添加了一个新的数据库,并在我在psql中执行时验证了新的数据库。
有关下一步检查的建议吗?
答案 0 :(得分:0)
询问mgd
架构
\d mgd.*
要使mgd
架构成为默认位置,请将其置于搜索路径的开头
set search_path to mgd, "$user", public;