psql: no relations found despite existing relations

lostinthebits picture lostinthebits · Jul 10, 2013 · Viewed 16.1k times · Source

Version 8.4.16 (no choice in version).

I log into my db as follows:

psql -d JRuser

The resulting prompt is:

JRuser=>

I do \d or \dt expecting to see a list of all the relations in schema 'translate'

No relations found. 

But I can select from any of the tables in the schema without any issues. For example:

select * from translate.storage; --works fine

I have ensured that the access privileges are correct for JRuser by doing \dn+:

                                 List of schemas
        Name        |  Owner   |  Access privileges   |           Description  
translate           | JRuser   | JRuser=UC/JRuser     | 
                               : postgres=UC/JRuser     

Why can't I see the tables in the translate schema?

Answer

Erwin Brandstetter picture Erwin Brandstetter · Jul 10, 2013

\d in psql only shows visible tables, i.e. in your search_path.

Try and see:

SHOW search_path;
SET search_path= translate;
\d

The setting for your session has probably been changed somehow. There are multiple ways to do that:

Related later question on dba.SE: