Po pierwsze, jeśli nie używasz wersji 9.1+, odpowiedz na to pytanie .
Jak zainstalować rozszerzenie PostgreSQL 9.1?
Po pierwsze, jeśli nie używasz wersji 9.1+, odpowiedz na to pytanie .
Jak zainstalować rozszerzenie PostgreSQL 9.1?
Odpowiedzi:
Postgrseql 9.1 zawiera nowe polecenie CREATE EXTENSION
. Powinieneś go użyć do zainstalowania modułów.
Moduły zawarte w 9.1 można znaleźć tutaj. . Obejmują,
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
Jeśli na przykład chcesz zainstalować earthdistance
, po prostu użyj tego polecenia:
CREATE EXTENSION earthdistance;
Jeśli chcesz zainstalować rozszerzenie z łącznikiem w nazwie, na przykład uuid-ossp
, musisz umieścić nazwę rozszerzenia w podwójnych cudzysłowach:
CREATE EXTENSION "uuid-ossp";
DROP EXTENSION
. Możesz również uzyskać listę rozszerzeń i istnieje podstawowa obsługa numerów wersji.Chociaż odpowiedź Evana Carrola jest poprawna, pamiętaj, że musisz zainstalować pakiet postgresql contrib, aby polecenie CREATE EXTENSION działało.
W Ubuntu 12.04 wyglądałoby to tak:
sudo apt-get install postgresql-contrib
Zrestartuj serwer postgresql:
sudo /etc/init.d/postgresql restart
Wszystkie dostępne rozszerzenia znajdują się w:
/usr/share/postgresql/9.1/extension/
Teraz możesz uruchomić polecenie UTWÓRZ ROZSZERZENIE.
Oprócz rozszerzeń, które są obsługiwane i dostarczane przez główny zespół programistów PostgreSQL, istnieją rozszerzenia dostępne od stron trzecich. Warto zauważyć, że istnieje witryna przeznaczona do tego celu: http://www.pgxn.org/
W przypadku pliku postgrersql10
Rozwiązałem to za pomocą
yum install postgresql10-contrib
Nie zapomnij aktywować rozszerzeń w postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
potem oczywiście uruchom ponownie
systemctl restart postgresql-10.service
wszystkie potrzebne rozszerzenia, które można znaleźć tutaj
/usr/pgsql-10/share/extension/
Rozszerzenia dostępne dla każdej wersji Postgresql są różne. Jak już wspomniano, prostym sposobem sprawdzenia, które rozszerzenia są dostępne, jest:
SELECT * FROM pg_available_extensions;
Jeśli rozszerzenie, którego szukasz, jest dostępne, możesz je zainstalować za pomocą:
CREATE EXTENSION 'extensionName';
lub jeśli chcesz go upuścić użyj:
DROP EXTENSION 'extensionName';
Dzięki psql
możesz dodatkowo sprawdzić, czy rozszerzenie zostało pomyślnie zainstalowane za pomocą \dx
, i znaleźć więcej szczegółów na temat rozszerzenia za pomocą \dx+ extensioName
. Zwraca dodatkowe informacje o rozszerzeniu, takie jak używane z nim pakiety.
Jeśli rozszerzenie nie jest dostępne w Twojej wersji Postgres, musisz pobrać niezbędne pliki binarne i biblioteki i zlokalizować je pod adresem /usr/share/conrib
W terminalu psql umieść:
\i <path to contrib files>
w ubuntu zwykle tak jest /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql
Jak pobrać i zainstalować, jeśli masz SUSE. Jako przykład pobieram moduł tablefunc, więc mogę użyć tabeli krzyżowej. Mam PostgreSQL 9.6.1.
kliknij prawym przyciskiem pulpit, terminal, wpisz:
sudo zypper in postgreql-contrib
Wprowadź dane logowania, kontynuuj wpisując:
y
Uruchom zapytanie (moje uruchomiłem z pgAdminIII):
CREATE EXTENSION tablefunc;
Powinieneś teraz mieć tę crosstab
funkcję.
Nie musiałem restartować.
DROP EXTENSION extension_name [, ...]