Як імпортувати модулі або встановити розширення в PostgreSQL 9.1+?


Відповіді:


104

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";

3
Для зручності видалення розширення: DROP EXTENSION extension_name [, ...]
— Тушкуйте

58

Хоча відповідь Евана Керроля є правильною, зауважте, що вам потрібно встановити пакет 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.


Я намагався встановити citext, але Google не знайшов цю сторінку, і ця відповідь не з’явилася. Зараз citext на цій сторінці згадується тричі :-) Давай, google, зроби це індексація.
— човновий кодер

12

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


8

Для 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/

4

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

SELECT * FROM pg_available_extensions;

Якщо розширення, яке ви шукаєте, доступне, ви можете встановити його за допомогою:

CREATE EXTENSION 'extensionName';

або якщо ви хочете скинути його, використовуйте:

DROP EXTENSION 'extensionName';

За допомогою psqlви можете додатково перевірити, чи розширення успішно встановлено за допомогою\dx , та знайти додаткову інформацію про використання розширення \dx+ extensioName. Він повертає додаткову інформацію про розширення, наприклад, які пакети використовуються з ним.

Якщо розширення недоступне у вашій версії Postgres, вам потрібно завантажити необхідні двійкові файли та бібліотеки та знайти їх за адресою /usr/share/conrib



0

Як завантажити та встановити, якщо у вас є SUSE. Як приклад я завантажую модуль tablefunc, щоб я міг використовувати перехресну таблицю. У мене є PostgreSQL 9.6.1.

клацніть правою кнопкою миші на робочому столі, терміналі, введіть:

sudo zypper in postgreql-contrib

Введіть облікові дані, продовжте, набравши:

y

Запустити запит (я запустив свій з pgAdminIII):

CREATE EXTENSION tablefunc;

Тепер ви повинні мати crosstabфункцію.

Мені не довелося перезавантажуватись.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.