Как импортировать модули или установить расширения в PostgreSQL 9.1+? - PullRequest
78 голосов
/ 27 января 2012

Во-первых, если вы не используете 9.1+, обратитесь к этому вопросу .

Как установить расширение для PostgreSQL 9.1?

Ответы [ 7 ]

95 голосов
/ 27 января 2012

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";
53 голосов
/ 03 апреля 2014

Хотя ответ Эвана Кэррола верен, обратите внимание, что вам нужно установить пакет contrib для postgresql, чтобы команда 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.

11 голосов
/ 05 апреля 2012

В дополнение к расширениям, которые поддерживаются и предоставляются основной командой разработчиков PostgreSQL, существуют расширения, доступные от третьих лиц. В частности, есть сайт, посвященный этой цели: http://www.pgxn.org/

4 голосов
/ 18 мая 2018

Для 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/
0 голосов
/ 30 июня 2019

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

SELECT * FROM pg_available_extensions;

Если доступное расширение доступно, вы можете установить его с помощью:

CREATE EXTENSION 'extensionName';

или если вы хотите удалить его, используйте:

DROP EXTENSION 'extensionName';

С помощью psql вы можете дополнительно проверить, было ли расширение успешно установлено с помощью \dx, и найти более подробную информацию о расширении с помощью \dx+ extensioName.Он возвращает дополнительную информацию о расширении, например, какие пакеты используются с ним.

Если расширение отсутствует в вашей версии Postgres, вам необходимо загрузить необходимые двоичные файлы и библиотеки и найти их в /usr/share/conrib

0 голосов
/ 03 января 2017

Как скачать и установить, если у вас есть SUSE. В качестве примера я загружаю модуль tablefunc, чтобы использовать кросс-таблицу. У меня есть PostgreSQL 9.6.1.

Рабочий стол правой кнопкой мыши, терминал, тип:

sudo zypper in postgreql-contrib

Введите учетные данные, продолжайте набирать:

y

Выполнить запрос (я запускал мой из pgAdminIII):

CREATE EXTENSION tablefunc;

Теперь у вас должна быть функция crosstab.

Мне не нужно было перезапускать.

0 голосов
/ 25 июня 2012

В терминал PSQL положено:

\i <path to contrib files>

в Ubuntu обычно это /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql

...