Thread:
hello!
I’m trying to learn django using this book.
It gives a great low-level tutorial for deploying djang on using cookiecutter.
However when I try to deploy django and connect to my postgres server postgres gives me a permission error:
python manage.py sqlcreate | sudo -u postgres psql -U postgres
results to:
Could not change directory ... permission denied
CREATE ROLE
CREATE DATABASE
GRANT
The error arises on the part after | I’ve found out. My error is therefore a postgres permission error rather than a django error I think.
I’ve found numerous people that are also facing permission errors when using postgres but these solutions have however not helped me understand and fix the error.
I’m running Fedora and systemctl and pg_isready shows everything should be working correctly.
Should I just add the user postgres to my username group to fix this error ? Or does that create a security problem ?
This should be a fairly common error, but can anyone tell me why this is occuring ?
Thank you in advance!
Johan
Johan Antonissen <windhoos@gmail.com> writes: > However when I try to deploy django and connect to my postgres server > postgres gives me a permission error: > python manage.py sqlcreate | sudo -u postgres psql -U postgres > results to: > Could not change directory ... permission deniedCREATE ROLECREATE DATABASEGRANT The "Could not change directory ... permission denied" part is mostly cosmetic. It happens when psql is invoked in a current working directory that the postgres user can't read. The fact that you're getting "CREATE ROLE", "CREATE DATABASE", etc command completion acknowledgements indicates that the SQL script is executing successfully anyway. So what you've showed us doesn't really indicate that anything is wrong; although you could try it from a publicly-readable starting directory if you want to be sure. regards, tom lane
Johan Antonissen <windhoos@gmail.com> writes:
> However when I try to deploy django and connect to my postgres server
> postgres gives me a permission error:
> python manage.py sqlcreate | sudo -u postgres psql -U postgres
> results to:
> Could not change directory ... permission deniedCREATE ROLECREATE DATABASEGRANT
The "Could not change directory ... permission denied" part is mostly
cosmetic. It happens when psql is invoked in a current working
directory that the postgres user can't read. The fact that you're
getting "CREATE ROLE", "CREATE DATABASE", etc command completion
acknowledgements indicates that the SQL script is executing
successfully anyway. So what you've showed us doesn't really
indicate that anything is wrong; although you could try it from
a publicly-readable starting directory if you want to be sure.
regards, tom lane
+1On Mon, Apr 17, 2023 at 10:54 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:Johan Antonissen <windhoos@gmail.com> writes:
> However when I try to deploy django and connect to my postgres server
> postgres gives me a permission error:
> python manage.py sqlcreate | sudo -u postgres psql -U postgres
> results to:
> Could not change directory ... permission deniedCREATE ROLECREATE DATABASEGRANT
The "Could not change directory ... permission denied" part is mostly
cosmetic. It happens when psql is invoked in a current working
directory that the postgres user can't read. The fact that you're
getting "CREATE ROLE", "CREATE DATABASE", etc command completion
acknowledgements indicates that the SQL script is executing
successfully anyway. So what you've showed us doesn't really
indicate that anything is wrong; although you could try it from
a publicly-readable starting directory if you want to be sure.
regards, tom lane