[Python] psycopg2.errors.InsufficientPrivilege: permission denied for relation...

Discussão em 'Python' iniciado por Stack, Agosto 18, 2025.

  1. Stack

    Stack Membro Participativo

    What my settings.py for DB looks like:

    ALLOWED_HOSTS = ['*']

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'fishercoder',
    'USER': 'fishercoderuser',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': '5432',
    }
    }


    I have created a new and empty db named "fishercoder" this way:

    psql -U postgres
    create database fishercoder;
    ALTER USER postgres with password 'badpassword!';
    CREATE USER fishercoderuser WITH PASSWORD 'password';
    ALTER ROLE fishercoderuser SET client_encoding TO 'utf8';
    ALTER ROLE fishercoderuser SET default_transaction_isolation TO 'read committed';
    ALTER ROLE fishercoderuser SET timezone TO 'PST8PDT';
    GRANT ALL PRIVILEGES ON DATABASE fishercoder TO fishercoderuser;



    Then I've imported my other SQL dump into this new DB successfully by running:psql -U postgres fishercoder < fishercoder_dump.sql

    Then I tried to run ./manage.py makemigrations on my Django project on this EC2 instance, but got this error:

    Traceback (most recent call last):
    File "/home/ubuntu/myprojectdir/myprojectenv/lib/python3.6/site-packages/django/db/backends/utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
    psycopg2.errors.InsufficientPrivilege: permission denied for relation django_migrations


    I found these three related posts on SO: One, two and three

    I tried the commands they suggested:

    postgres=# GRANT ALL ON ALL TABLES IN SCHEMA public to fishercoderuser;
    GRANT
    postgres=# GRANT ALL ON ALL SEQUENCES IN SCHEMA public to fishercoderuser;
    GRANT
    postgres=# GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to fishercoderuser;
    GRANT


    no luck, I then restarted my postgresql db: sudo service postgresql restart when I tried to run migrations again, still faced w/ the same error.

    More debug info below:

    ubuntu@ip-xxx-xxx-xx-xx:~$ psql -U postgres
    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1))
    Type "help" for help.

    postgres=# \dt django_migrations
    Did not find any relation named "django_migrations".
    postgres=# \d django_migrations
    Did not find any relation named "django_migrations".
    postgres=# \dp django_migrations
    Access privileges
    Schema | Name | Type | Access privileges | Column privileges | Policies
    --------+------+------+-------------------+-------------------+----------
    (0 rows)

    postgres=# SHOW search_path; \dt *.django_migrations
    search_path
    -----------------
    "$user", public
    (1 row)

    Did not find any relation named "*.django_migrations".

    postgres=# \dn+ public.
    List of schemas
    Name | Owner | Access privileges | Description
    --------------------+----------+----------------------+----------------------------------
    information_schema | postgres | postgres=UC/postgres+|
    | | =U/postgres |
    pg_catalog | postgres | postgres=UC/postgres+| system catalog schema
    | | =U/postgres |
    pg_temp_1 | postgres | |
    pg_toast | postgres | | reserved schema for TOAST tables
    pg_toast_temp_1 | postgres | |
    public | postgres | postgres=UC/postgres+| standard public schema
    | | =UC/postgres |
    (6 rows)


    Any ideas how to fix this?

    Continue reading...

Compartilhe esta Página