"System catalog modifications are currently disallowed" - вдруг

May 14, 2019 17:51


Или, пара строк о том, почему я, в отличии от коллег, не трачу время на экзамены Oracle и PostgreSQL .
Эпиграф.

Стандартная задача - установить расширение PostgreSQL "pg_stat_statements". Казалось бы, никаких проблем. Тем более перед продакшн , было проверено на тестовом инстансе.

Однако :
=> CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
ERROR:  permission denied to create "pg_catalog.pg_stat_statements"
DETAIL:  System catalog modifications are currently disallowed.


Сказать, что удивился ничего не сказать.
Вошел то , пользователем с ролью superuser
=> \du
                                                           List of roles
     Role name       |                   Attributes                   |                          Member of
----------------------+------------------------------------------------+--------------------------------------------------------------
stc                      | Create role, Create DB                        +| {rds_superuser}
                          | Password valid until infinity                  |

Посмотрел в чем разница между тестовым и продакшн инстансами - все идентично.

Что делать?

Надо спросить помощи коллег . Благо , сдавшие экзамен по PostgreSQL имеются в наличии .

Однако - "не знаю в чем дело , надо погуглить "

Что-же делать, придется спрашивать в support, благо база в облаке AWS.
В общем-то вопрос не горящий, поэтому ответ пришел не сразу, была возможность погулглить и подумать , может быть получится решиьть проблему самому.
Нет не получилось.

Итак , ответ от вежливого индуса из support :
[Все оказалось не просто, а очень просто -]
======================================== SOLUTION ========================================
Thus, in order to fix the issue, you will have to set the search path to any other schema other than "pg_catalog". You can either use any of the following methods:
== Using the following command. This will set the search path at the session level.
$psql=>set search_path to public; (You can alternatively use any other schema. I have used public schema for example).

Вот же блин, ну элементарно же...

Ладно, пригодится в копилочке.

#postgresql #pg_stat_statements

postgresql, #pg_stat_statements, pg_stat_statements, #postgresql

Previous post Next post
Up