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?
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";
DROP EXTENSION
. Vous pouvez également obtenir une liste d’extensions et un support de base pour les numéros de version.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.
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/
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/
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.
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
.
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