Wie importiere ich Module oder installiere Erweiterungen in PostgreSQL 9.1+?

Antworten:

104

Postgrseql 9.1 bietet einen neuen Befehl CREATE EXTENSION. Sie sollten es verwenden, um Module zu installieren.

Die in 9.1 bereitgestellten Module finden Sie hier. . Die umfassen,

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

Wenn Sie beispielsweise installieren möchten earthdistance, verwenden Sie einfach diesen Befehl:

CREATE EXTENSION earthdistance;

Wenn Sie eine Erweiterung mit einem Bindestrich im Namen installieren möchten uuid-ossp, müssen Sie den Erweiterungsnamen in doppelte Anführungszeichen setzen:

CREATE EXTENSION "uuid-ossp";
Evan Carroll
quelle
3
Zur Vereinfachung, um eine Erweiterung zu entfernen: DROP EXTENSION extension_name [, ...]
Stew
58

Während die Antwort von Evan Carrol richtig ist, beachten Sie bitte, dass Sie das Postgresql-Contrib-Paket installieren müssen, damit der Befehl CREATE EXTENSION funktioniert.

In Ubuntu 12.04 würde es so aussehen:

sudo apt-get install postgresql-contrib

Starten Sie den Postgresql-Server neu:

sudo /etc/init.d/postgresql restart

Alle verfügbaren Erweiterungen sind in:

/usr/share/postgresql/9.1/extension/

Jetzt können Sie den Befehl CREATE EXTENSION ausführen.

Tani-Rokk
quelle
Ich habe versucht, citext zu installieren, aber Google hat diese Seite nicht gefunden, und diese Antwort wurde nicht angezeigt. Jetzt wird citext auf dieser Seite dreimal erwähnt :-) Komm schon, google, mach die Indizierung.
Bootscodierer
12

Zusätzlich zu den Erweiterungen, die vom PostgreSQL-Kernentwicklungsteam verwaltet und bereitgestellt werden, sind Erweiterungen von Drittanbietern verfügbar. Insbesondere gibt es eine Website, die diesem Zweck gewidmet ist: http://www.pgxn.org/

kgrittn
quelle
8

Für die postgrersql10

Ich habe es mit gelöst

yum install postgresql10-contrib

Vergessen Sie nicht, Erweiterungen in der postgresql.conf zu aktivieren

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

dann natürlich neu starten

systemctl restart postgresql-10.service 

Alle benötigten Erweiterungen finden Sie hier

/usr/pgsql-10/share/extension/
Watson Kepson
quelle
4

Die für jede Version von Postgresql verfügbaren Erweiterungen variieren. Wie bereits erwähnt, können Sie auf einfache Weise überprüfen, welche Erweiterungen verfügbar sind:

SELECT * FROM pg_available_extensions;

Wenn die gesuchte Erweiterung verfügbar ist, können Sie sie installieren mit:

CREATE EXTENSION 'extensionName';

oder wenn Sie es fallen lassen möchten, verwenden Sie:

DROP EXTENSION 'extensionName';

Mit können psqlSie zusätzlich überprüfen, ob die Erweiterung mit erfolgreich installiert wurde \dx, und weitere Details zur Erweiterung mit finden \dx+ extensioName. Es gibt zusätzliche Informationen über die Erweiterung zurück, z. B. welche Pakete damit verwendet werden.

Wenn die Erweiterung in Ihrer Postgres-Version nicht verfügbar ist, müssen Sie die erforderlichen Binärdateien und Bibliotheken herunterladen und unter suchen /usr/share/conrib

Marios Simou
quelle
0

In psql Terminal setzen:

\i <path to contrib files>

in Ubuntu ist es normalerweise /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql

André Herculano
quelle
6
Das ist für vor 9.1. Verwenden Sie diese Methode nicht in 9.1+.
Evan Carroll
0

Herunterladen und Installieren, wenn Sie SUSE haben. Als Beispiel lade ich das tablefunc-Modul herunter, damit ich die Kreuztabelle verwenden kann. Ich habe PostgreSQL 9.6.1.

Klicken Sie mit der rechten Maustaste auf Desktop, Terminal, Typ:

sudo zypper in postgreql-contrib

Geben Sie die Anmeldeinformationen ein und geben Sie Folgendes ein:

y

Abfrage ausführen (ich habe meine von pgAdminIII ausgeführt):

CREATE EXTENSION tablefunc;

Sie sollten jetzt die crosstabFunktion haben.

Ich musste nicht neu starten.

Bergsteiger
quelle