Работа с расширениями
PostgreSQL даёт возможность расширить функционал базы данных, группируя объекты SQL в один пакет, в результате чего эти объекты начинают использоваться совместно. Сгруппированные таким образом объекты называются расширениями PostgreSQL.
Расширения — это модули, предоставляющие дополнительную функциональность: функции, операторы, типы и т.д.
Просмотр доступных расширений
Вы можете просмотреть доступные расширения, используя psql:
-
Выполните команду
\dx
, чтобы просмотреть список установленных расширений. -
Вызовите команду
\dx+
, чтобы просмотреть список установленных расширений и ассоциированных с ними объектов.
Представление pg_available_extensions
содержит расширения, доступные для установки. Используйте следующий код, чтобы просмотреть их:
SELECT * FROM pg_available_extensions;
Расширения contrib и PostGIS
Многие модули, входящие в расширение 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.