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:
Related videos on Youtube
Comments
-
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 almost 11 yearsI think you need to use
\dt translation.*
-
lostinthebits almost 11 yearsI 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 almost 11 yearsCan 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 almost 11 years@lostinthebits: see here: postgresql.org/docs/8.4/static/sql-set.html#AEN65998
-
sdailey over 10 yearsChanging 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/…