Работа с расширениями

PostgreSQL даёт возможность расширить функционал базы данных, группируя объекты SQL в один пакет, в результате чего эти объекты начинают использоваться совместно. Сгруппированные таким образом объекты называются расширениями PostgreSQL.

Расширения — это модули, предоставляющие дополнительную функциональность: функции, операторы, типы и т.д.

Просмотр доступных расширений

Вы можете просмотреть доступные расширения, используя psql:

  • Выполните команду \dx, чтобы просмотреть список установленных расширений.

  • Вызовите команду \dx+, чтобы просмотреть список установленных расширений и ассоциированных с ними объектов.

Представление pg_available_extensions содержит расширения, доступные для установки. Используйте следующий код, чтобы просмотреть их:

SELECT * FROM pg_available_extensions;

Расширения contrib и PostGIS

Расширения contrib и PostGIS предустановлены в кластер ADPG.

Многие модули, входящие в расширение contrib, реализованы в виде отдельных расширений. Расширение contrib включает средства портирования, утилиты анализа и подключаемые функции, не включённые в состав PostgreSQL. За дополнительными сведениями о модулях расширения из каталога contrib обратитесь к статье Additional supplied modules.

PostGIS — расширение, добавляющее поддержку географических объектов и позволяющее выполнять запросы местоположения в SQL. PostGIS предлагает множество функций, редко встречающихся в других пространственных базах данных. За подробностями обратитесь к статье PostGIS Feature List.

Управление расширениями

Можно создавать, изменять и удалять расширения с помощью соответствующих команд.

Создание расширения

CREATE EXTENSION загружает в текущую базу данных новое расширение. Расширение с таким же именем не должно быть уже загружено.

PostgreSQL запускает скрипт-файл расширения. Скрипт создает новые объекты SQL, например, функции, типы данных, операторы и методы поддержки индексов. CREATE EXTENSION также сохраняет идентификаторы всех созданных объектов, чтобы их можно было удалить, если вызвана DROP EXTENSION.

Пользователь, выполнивший CREATE EXTENSION, становится владельцем самого расширения, а также владельцем всех объектов, созданных скриптом расширения.

Если соответствующее расширение не найдено, то команда CREATE EXTENSION сообщит, что скрипт-файла расширения не существует.

Если расширение не найдено, установите соответствующий пакет, содержащий его.

Следующий код загружает модуль pg_stat_statements, который включен в расширение contrib:

CREATE EXTENSION pg_stat_statements;

Вы можете найти дополнительную информацию об этой команде в статье CREATE EXTENSION.

Удаление расширения

DROP EXTENSION удаляет расширение из базы данных. Удаление расширения также влечёт удаление всех зависимых объектов.

В коде ниже используется параметр CASCADE для удаления расширения, всех зависимых объектов и объектов, зависящих от зависимых объектов расширения:

DROP EXTENSION plperlu CASCADE;

За дополнительной информацией обратитесь к статье DROP EXTENSION.

Изменение расширения

ALTER EXTENSION модифицирует расширение, включая обновление версий.

Следующий код обновляет модуль hstore до версии 2.0:

ALTER EXTENSION hstore UPDATE TO '2.0';

Вы можете найти дополнительную информацию об этой команде в статье ALTER EXTENSION.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней