«Должен быть владельцем таблицы A», но A не существует

#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;  

и это сработало.