Во-первых, если вы не используете 9.1+, обратитесь к этому вопросу.
Как установить расширение для PostgreSQL 9.1?
Во-первых, если вы не используете 9.1+, обратитесь к этому вопросу.
Как установить расширение для PostgreSQL 9.1?
Postgrseql 9.1 предоставляет новую команду CREATE EXTENSION
. Вы должны использовать его для установки модулей.
Модули, представленные в 9.1, можно найти здесь.. Включить,
adminpack , auth_delay , auto_explain , btree_gin , btree_gist
, chkpass , citext , cube , dblink , dict_int
, dict_xsyn , dummy_seclabel , earthdistance , file_fdw , fuzzystrmatch
, hstore , intagg , intarray , isn , lo
, ltree , oid2name , pageinspect , passwordcheck , pg_archivecleanup
, pgbench , pg_buffercache , pgcrypto , pg_freespacemap , pgrowlocks
, pg_standby , pg_stat_statements , pgstattuple , pg_test_fsync , pg_trgm
, pg_upgrade , seg , sepgsql , spi , sslinfo , tablefunc
, test_parser , tsearch2 , unaccent , uuid-ossp , vacuumlo
, xml2
Если вы хотели установить earthdistance
, просто используйте эту команду:
CREATE EXTENSION earthdistance;
Если вы хотите установить расширение с дефисом в его имени, например uuid-ossp
, вам нужно заключить имя расширения в двойные кавычки:
CREATE EXTENSION "uuid-ossp";
DROP EXTENSION
, Вы также можете получить список расширений, и есть базовая поддержка номеров версий.В то время как ответ Evan Carrol верен, обратите внимание, что вам нужно установить пакет postgresql contrib, чтобы команда CREATE EXTENSION работала.
В Ubuntu 12.04 он будет выглядеть следующим образом:
sudo apt-get install postgresql-contrib
Перезагрузите сервер postgresql:
sudo /etc/init.d/postgresql restart
Все доступные расширения:
/usr/share/postgresql/9.1/extension/
Теперь вы можете запустить команду CREATE EXTENSION.
В дополнение к расширениям, которые поддерживаются и предоставляются основной командой разработчиков PostgreSQL, есть расширения, доступные от третьих лиц. Примечательно, что есть сайт, посвященный этой цели: http://www.pgxn.org/
Для postgrersql10
Я решил это с помощью
yum install postgresql10-contrib
Не забудьте активировать расширения в postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
то, конечно, перезапустите
systemctl restart postgresql-10.service
все необходимые расширения вы можете найти здесь
/usr/pgsql-10/share/extension/
В терминал psql put:
\i <path to contrib files>
в ubuntu обычно /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql
Как загрузить и установить, если у вас есть SUSE. В качестве примера я загружаю модуль tablefunc, чтобы использовать кросс-таблицу. У меня PostgreSQL 9.6.1.
щелкните правой кнопкой мыши рабочий стол, терминал, введите:
sudo zypper in postgreql-contrib
Введите учетные данные, продолжайте, набрав:
y
Запустить запрос (я запустил my из pgAdminIII):
CREATE EXTENSION tablefunc;
Теперь вы должны иметь функцию crosstab
.
Мне не пришлось перезапускать.
Расширения, доступные для каждой версии Postgresql, различаются. Простой способ проверить, какие расширения доступны, как уже упоминалось:
SELECT * FROM pg_available_extensions;
Если нужное расширение доступно, вы можете установить его, используя:
CREATE EXTENSION 'extensionName';
или если вы хотите удалить его, используйте:
DROP EXTENSION 'extensionName';
С помощью psql
вы можете дополнительно проверить, было ли расширение успешно установлено с помощью \dx
, и найти более подробную информацию о расширении с помощью \dx+ extensioName
. Он возвращает дополнительную информацию о расширении, например, какие пакеты используются с ним.
Если расширение недоступно в вашей версии Postgres, вам необходимо загрузить необходимые двоичные файлы и библиотеки и найти их в /usr/share/conrib