Wenn Sie 9.1+ nicht verwenden, beziehen Sie sich zunächst auf diese Frage .
Wie installiere ich eine Erweiterung für PostgreSQL 9.1?
Wenn Sie 9.1+ nicht verwenden, beziehen Sie sich zunächst auf diese Frage .
Wie installiere ich eine Erweiterung für PostgreSQL 9.1?
Antworten:
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";
DROP EXTENSION
. Sie können auch eine Erweiterungsliste erhalten, und es gibt grundlegende Unterstützung für Versionsnummern.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.
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/
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/
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 psql
Sie 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
In psql Terminal setzen:
\i <path to contrib files>
in Ubuntu ist es normalerweise /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql
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 crosstab
Funktion haben.
Ich musste nicht neu starten.
DROP EXTENSION extension_name [, ...]