Каковы некоторые основные шаги для устранения неполадок и сужения причины "ошибки django.db.utils.ProgrammingError: разрешено для связи django_migrations" из Django?
Я получаю это сообщение после того, что изначально был стабильным производственным сервером, но с тех пор имел некоторые изменения в нескольких аспектах Django, Postgres, Apache и pull от Github. Кроме того, прошло некоторое время с тех изменений, которые были сделаны, и я не помню или не могу отслеживать каждое изменение, которое может вызвать проблему.
Я получаю сообщение, когда я запускаю python manage.py runserver
или любую другую команду python manage.py ...
, кроме python manage.py check
, которая утверждает, что система хороша.
Мне удалось решить мою проблему на основе инструкций из этого question. В принципе, привилегии postgres должны быть повторно предоставлены пользователю db. В моем случае это был пользователь, которого я установил в файле настроек виртуальной среды. Выполните следующее из командной строки (или в postgres), где mydatabase
и dbuser
должны быть вашей собственной базой данных и именами пользователей:
psql mydatabase -c "GRANT ALL ON ALL TABLES IN SCHEMA public to dbuser;"
psql mydatabase -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to dbuser;"
psql mydatabase -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to dbuser;"
ubuntu
но моя виртуальная среда устанавливает мою переменную env DATABASE_USER какdbuser
, которая также используется в определении DATABASES в моем файле производственных настроек для Django. В Postgresdbuser
существует и, как мне кажется, ему предоставлены правильные привилегии.dbuser
имеет атрибут Create DB как пользователь postgres и имеет привилегию доступа для базы данных CTc .