84 votes

Comment importer des modules ou installer des extensions dans PostgreSQL 9.1+ ?

Tout d'abord, si vous n'utilisez pas la version 9.1+, veuillez se référer à cette question .

Comment installer une extension à PostgreSQL 9.1 ?

106voto

Evan Carroll Points 13420

Postgrseql 9.1 prévoit une nouvelle commande CREATE EXTENSION . Vous devez l'utiliser pour installer des modules.

Les modules fournis en 9.1 peuvent être trouvés ici. . Ils comprennent,

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

Si par exemple vous voulez installer earthdistance il suffit d'utiliser cette commande :

CREATE EXTENSION earthdistance;

Si vous vouliez installer une extension avec un trait d'union dans son nom, comme uuid-ossp vous devez placer le nom de l'extension entre guillemets :

CREATE EXTENSION "uuid-ossp";

3 votes

Par commodité, pour retirer une extension : DROP EXTENSION extension_name [, ...]

59voto

tani-rokk Points 146

Bien que la réponse d'Evan Carrol soit correcte, veuillez noter que vous devez installer le paquet postgresql contrib pour que la commande CREATE EXTENSION fonctionne.

Dans Ubuntu 12.04, cela se passe comme suit :

sudo apt-get install postgresql-contrib

Redémarrez le serveur postgresql :

sudo /etc/init.d/postgresql restart

Toutes les extensions disponibles sont en :

/usr/share/postgresql/9.1/extension/

Vous pouvez maintenant exécuter la commande CREATE EXTENSION.

0 votes

J'essayais d'installer citext, mais google ne trouvait pas cette page, et cette réponse n'est pas apparue. Maintenant, citext est mentionné trois fois sur cette page :-) Allez google, fais ce truc d'indexation.

0 votes

Notez que ce paquet est également nécessaire pour ajouter vacuumlo script dans le bin pgsql. En outre, vous pouvez avoir besoin d'utiliser ln -s pour relier vacuumlo à /usr/bin .

13voto

kgrittn Points 6058

En plus des extensions qui sont maintenues et fournies par l'équipe de développement de PostgreSQL, il existe des extensions disponibles auprès de tiers. Notamment, il existe un site dédié à cet effet : http://www.pgxn.org/

8voto

matson kepson Points 426

Pour le postgrersql10

Je l'ai résolu avec

yum install postgresql10-contrib

N'oubliez pas d'activer les extensions dans postgresql.conf

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all

puis, bien sûr, redémarrer

systemctl restart postgresql-10.service 

toutes les extensions nécessaires que vous pouvez trouver ici

/usr/pgsql-10/share/extension/

4voto

Marios Simou Points 159

Les extensions disponibles pour chaque version de Postgresql varient. Un moyen facile de vérifier quelles sont les extensions disponibles est, comme cela a déjà été mentionné :

SELECT * FROM pg_available_extensions;

Si l'extension que vous recherchez est disponible, vous pouvez l'installer en utilisant :

CREATE EXTENSION 'extensionName';

ou si vous voulez le laisser tomber, utilisez :

DROP EXTENSION 'extensionName';

Avec psql vous pouvez en outre vérifier si l'extension a été installée avec succès en utilisant \dx et trouver plus de détails sur l'extension en utilisant \dx+ extensioName . Il renvoie des informations supplémentaires sur l'extension, comme les paquets qui sont utilisés avec elle.

Si l'extension n'est pas disponible dans votre version de Postgres, vous devez télécharger les fichiers binaires et les bibliothèques nécessaires et les localiser à l'adresse suivante /usr/share/conrib

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X