Обсуждение:

Поиск
Список
Период
Сортировка

От
Johan Antonissen
Дата:

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

Re:

От
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



Re:

От
Josh Innis
Дата:
+1

On 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


Re:

От
Johan Antonissen
Дата:
Hello!

Ok thanx for the information the clarification! I’m getting a ton of errors when I do a migration after running that line but then I guess there’s a bug in the code of the book. I also see that it’s GitHub has not been updated since 2021. I’m just going for another book then!

Thank you again for the help!

On Mon, 17 Apr 2023 at 17:46, Josh Innis <joshinnis@gmail.com> wrote:
+1

On 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


--
Met vriendelijke groet,

Johan Antonissen