По-перше, якщо ви не використовуєте 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
. Ви також можете отримати список розширень, і є основна підтримка номерів версій.Хоча відповідь Евана Керроля є правильною, зауважте, що вам потрібно встановити пакет 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/
Розширення, доступні для кожної версії Postgresql, різняться. Простий спосіб перевірити, які розширення доступні, є, як уже зазначалося:
SELECT * FROM pg_available_extensions;
Якщо розширення, яке ви шукаєте, доступне, ви можете встановити його за допомогою:
CREATE EXTENSION 'extensionName';
або якщо ви хочете скинути його, використовуйте:
DROP EXTENSION 'extensionName';
За допомогою psql
ви можете додатково перевірити, чи розширення успішно встановлено за допомогою\dx
, та знайти додаткову інформацію про використання розширення \dx+ extensioName
. Він повертає додаткову інформацію про розширення, наприклад, які пакети використовуються з ним.
Якщо розширення недоступне у вашій версії Postgres, вам потрібно завантажити необхідні двійкові файли та бібліотеки та знайти їх за адресою /usr/share/conrib
У термінал psql помістіть:
\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
Запустити запит (я запустив свій з pgAdminIII):
CREATE EXTENSION tablefunc;
Тепер ви повинні мати crosstab
функцію.
Мені не довелося перезавантажуватись.
DROP EXTENSION extension_name [, ...]