Данное приложение содержит информацию о модулях, которые находятся в каталоге contrib дистрибутива PostgreSQL. Они включают инструменты портирования, утилиты анализа и встраеваемые возможности, которые не являются частью ядра системы PostgreSQL, в основном потому, что они предназначены для узкого круга пользователей или находятся на слишком экспериментальной стадии, чтобы быть частью главного дерева исходных текстов. Однако, это не означает, что их нельзя использовать.
Когда происходит сборка из исходных кодов, эти модули не собираются автоматически, если вы используете цель "world" (см. step 2). Вы можете собрать и установить их все запустив:
gmake gmake install
в каталоге contrib дерева исходных текстов; или собрать и установить только выборочные модули, выполнив те же самые команды в подкаталогах модулей. Многие из этих модулей имеют регрессивные тесты, которые могут быть запущены командами:
gmake installcheck
один раз при запуске сервера PostgreSQL. (Обратите внимание, что gmake check не поддерживаеся; чтобы выполнить тестирование, вы должны иметь работающий сервер баз данных для выполнения этих тестов и собранные и установленные модули.)
Если вы испольузете уже готовый пакет PostgreSQL, данные модули обычно сделаны доступными в виде отдельного подпакет, такого как postgresql-contrib.
Многие модули предоставляют новые функции определённые пользователем, операторы или типы. Чтобы сделать возможным использование одного из этих модулей, после того как вы установили код, вам нужно зарегистрировать новые SQL объекты в СУБД. В PostgreSQL 9.1 и выше, это делается с помощью запуска какой-либо CREATE EXTENSION команды. В свежеустановленной СУБД вы можете просто выполнить
psql -d dbname -f SHAREDIR/contrib/module.sql CREATE EXTENSION module_name;
Данная команда должна быть запущена суперпользователем СУБД. Она регистрирует новые SQL объекты только в текущей базе данных, так что вам необходимо запускать данную команду в каждой базе данных, для которой вы хотите сделать доступной функциональность нужного модуля. В качестве альтернативы, запустить его в базе данных template1, чтобы данное расширение в будущем по умолчанию копировалось в создаваемые на основе template1 базы данных.
Многие модули позволяют вам устанавливать их собственные объекты в какую-либо схему по вашему выбору. Чтобы сделать это, добавьте SCHEMA schema_name к команде CREATE EXTENSION. По умолчанию, объекты помещаются в вашу текущую схему, обычно это public.
Если ваша база данных была перенесена с помощью дампа и его загрузки с версии PostgreSQL pre-9.1 и вы использовали в ней версию модуля pre-9.1, вы должны вместо этого сделать
CREATE EXTENSION module_name FROM unpackaged;
что обновит объекты pre-9.1 модуля в правильный объект расширения. Будущие обновления для модуля будут управляться уже ALTER EXTENSION. Подробности об обновлениях расширений, см. в Section 35.15.