web-dev-qa-db-fra.com

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 vous référer à cette question .

Comment installer une extension sur PostgreSQL 9.1?

78
Evan Carroll

Postgrseql 9.1 fournit une nouvelle commande CREATE EXTENSION . Vous devriez l'utiliser pour installer des modules. 

Les modules fournis en 9.1 peuvent être trouvés ici. . L'inclusion,

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 vous voulez par exemple installer earthdistance , utilisez simplement cette commande:

CREATE EXTENSION earthdistance;

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

CREATE EXTENSION "uuid-ossp";
93
Evan Carroll

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 ressemblerait à ceci:

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.

51
tani-rokk

Outre les extensions gérées et fournies par l'équipe de développement principale de PostgreSQL, des extensions sont disponibles auprès de tiers. Il existe notamment un site dédié à cet effet: http://www.pgxn.org/

11
kgrittn

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/
4
matson kepson

Comment télécharger et installer si vous avez SUSE. Par exemple, je télécharge le module tablefunc pour pouvoir utiliser le tableau croisé. J'ai PostgreSQL 9.6.1.

cliquez avec le bouton droit sur le bureau, le terminal, tapez:

Sudo zypper in postgreql-contrib

Entrez vos identifiants, continuez en tapant:

y

Exécuter la requête (j'ai exécuté la mienne depuis pgAdminIII):

CREATE EXTENSION tablefunc;

Vous devriez maintenant avoir la fonction crosstab.

Je n'ai pas eu à redémarrer.

0
mountainclimber

Les extensions disponibles pour chaque version de Postgresql varient. Un moyen simple de vérifier quelles extensions sont 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 utiliser:

DROP EXTENSION 'extensionName';

Avec psql, vous pouvez également vérifier si l'extension a été installée avec succès à l'aide de \dx et obtenir plus de détails sur l'extension à l'aide de \dx+ extensioName. Elle renvoie des informations supplémentaires sur l'extension, telles que les packages 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'emplacement /usr/share/conrib.

0
Marios Simou

Dans psql terminal put:

\i <path to contrib files>

dans Ubuntu, il s’agit généralement de /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql

0
André Herculano