Як імпортувати модулі або встановити розширення в 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.