Действия по устранению неполадок «django.db.utils.ProgrammingError: в отношении django_migrations отказано в разрешении»

7

Каковы некоторые основные шаги для устранения неполадок и сужения причины "ошибки django.db.utils.ProgrammingError: разрешено для связи django_migrations" из Django?

Я получаю это сообщение после того, что изначально был стабильным производственным сервером, но с тех пор имел некоторые изменения в нескольких аспектах Django, Postgres, Apache и pull от Github. Кроме того, прошло некоторое время с тех изменений, которые были сделаны, и я не помню или не могу отслеживать каждое изменение, которое может вызвать проблему.

Я получаю сообщение, когда я запускаю python manage.py runserver или любую другую команду python manage.py ..., кроме python manage.py check, которая утверждает, что система хороша.

  • 0
    Правильны ли настройки базы данных в вашем файле settings.py? Этот пользователь существует в Postgres? Пароль правильный?
  • 0
    @ResleyRodrigues Я запускаю manage.py под пользователем ubuntu но моя виртуальная среда устанавливает мою переменную env DATABASE_USER как dbuser , которая также используется в определении DATABASES в моем файле производственных настроек для Django. В Postgres dbuser существует и, как мне кажется, ему предоставлены правильные привилегии. dbuser имеет атрибут Create DB как пользователь postgres и имеет привилегию доступа для базы данных CTc .
Показать ещё 2 комментария
Теги:
github

1 ответ

29
Лучший ответ

Мне удалось решить мою проблему на основе инструкций из этого 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;"
  • 1
    вау, спасибо тебе большое! Всюду искал решение. Я получил эту проблему, когда у меня уже была перенесенная база данных, а затем я попытался настроить geodjango.
  • 0
    У меня есть эта проблема, когда я создал базу данных с одним пользователем, а затем изменил владельца базы данных. Таблицы сохраняют старого владельца, что приводит к этой ошибке. Исправьте, я удалил базу данных, заново создал ее с помощью пользователя posgres, предоставил все привилегии новому пользователю и запустил миграцию.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню