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

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.


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/


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/

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


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


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.