psql: no relations found despite existing relations

17,582

\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:

Share:
17,582

Related videos on Youtube

lostinthebits
Author by

lostinthebits

very junior programmer

Updated on August 21, 2020

Comments

  • lostinthebits
    lostinthebits over 3 years

    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?

    • a_horse_with_no_name
      a_horse_with_no_name almost 11 years
      I think you need to use \dt translation.*
    • lostinthebits
      lostinthebits almost 11 years
      I can certainly do that but up until today I've been able to do just \d or \d without any qualifier. I didn't change any configuration settings so I am puzzled.
  • lostinthebits
    lostinthebits almost 11 years
    Can a search_path variable contain multiple schemas if a user wants to be able to show tables on all schemas?
  • a_horse_with_no_name
    a_horse_with_no_name almost 11 years
  • sdailey
    sdailey over 10 years
    Changing the search_path is tedious but necessary for the shell commands to find relations of a new database. Here's a more detailed answer on what the value of the path needs to be: stackoverflow.com/questions/9067335/…