#django #postgresql
Вопрос:
Я пытаюсь запустить миграцию базы данных, но получаю следующую ошибку:
psycopg2.ProgrammingError: must be owner of table request_settings
Это из моего файла .env:
... DB_USER=idaproject DB_NAME=wellton DB_PASSWORD=password DB_HOST=127.0.0.1 DB_PORT=5432 ...
Итак, я предполагаю, что эта таблица должна находиться в базе данных «wellton». Пользователь «idaproject» является владельцем базы данных «wellton» и имеет все привилегии и права на базу данных. Затем я попытался изменить владельца таблицы request_settings с помощью
ALTER TABLE request_settings OWNER TO idaproject;
Но, похоже, его не существует
ERROR: relation "request_settings" does not exist
Я что-то упускаю?
Комментарии:
1. Предположительно, вам не хватает схемы.
2. У меня действительно есть схема «общедоступная».
3. И, является ли таблица в этой схеме?
4. Ну, так и должно быть, но вы можете видеть из журнала, что этого «не существует»
5. Если вы посмотрите не в том месте и не найдете его, вот что вы получите. Например:
/* nothing on the serach path */ SET search_path = ''; SELECT * FROM atable;
.
Ответ №1:
Хорошо, значит, проблема была именно такой, как написано в журнале (удивительно): Мне просто нужно было сменить владельца стола. Причина, по которой таблица не была найдена, когда я пытался сменить владельца, заключалась в том, что я просто не был подключен к базе данных «wellton».
Поэтому я сделал это в консоли psql:
c wellton ALTER TABLE request_settings OWNER TO idaproject;
и это сработало.