可以在phpPgAdmin中查看表,但不能在psql(或任何其他方法)中查看表

时间:2014-07-11 13:06:23

标签: postgresql psql phppgadmin

我最近在我的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中执行时验证了新的数据库。

有关下一步检查的建议吗?

1 个答案:

答案 0 :(得分:0)

询问mgd架构

中的关系列表
\d mgd.*

要使mgd架构成为默认位置,请将其置于搜索路径的开头

set search_path to mgd, "$user", public;