En primer lugar, si no está utilizando 9.1+, consulte esta pregunta .
¿Cómo instalo una extensión para PostgreSQL 9.1?
En primer lugar, si no está utilizando 9.1+, consulte esta pregunta .
¿Cómo instalo una extensión para PostgreSQL 9.1?
Respuestas:
Postgrseql 9.1 proporciona un nuevo comando CREATE EXTENSION. Debería usarlo para instalar módulos.
Los módulos proporcionados en 9.1 se pueden encontrar aquí. . El incluir,
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, por ejemplo, desea instalar earthdistance, simplemente use este comando:
CREATE EXTENSION earthdistance;
Si desea instalar una extensión con un guión en su nombre, como uuid-ossp, debe encerrar el nombre de la extensión entre comillas dobles:
CREATE EXTENSION "uuid-ossp";
DROP EXTENSION. También puede obtener una lista de extensiones y hay soporte básico para los números de versión.Si bien la respuesta de Evan Carrol es correcta, tenga en cuenta que debe instalar el paquete contrib de postgresql para que funcione el comando CREATE EXTENSION.
En Ubuntu 12.04 sería así:
sudo apt-get install postgresql-contrib
Reinicie el servidor postgresql:
sudo /etc/init.d/postgresql restart
Todas las extensiones disponibles están en:
/usr/share/postgresql/9.1/extension/
Ahora puede ejecutar el comando CREATE EXTENSION.
Además de las extensiones que son mantenidas y proporcionadas por el equipo de desarrollo central de PostgreSQL, hay extensiones disponibles de terceros. Cabe destacar que existe un sitio dedicado a ese propósito: http://www.pgxn.org/
Para postgrersql10
Lo he resuelto con
yum install postgresql10-contrib
No olvide activar extensiones en postgresql.conf
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
luego, por supuesto, reiniciar
systemctl restart postgresql-10.service
todas las extensiones necesarias que puedes encontrar aquí
/usr/pgsql-10/share/extension/
Las extensiones disponibles para cada versión de Postgresql varían. Una forma sencilla de comprobar qué extensiones están disponibles es, como ya se ha mencionado:
SELECT * FROM pg_available_extensions;
Si la extensión que está buscando está disponible, puede instalarla usando:
CREATE EXTENSION 'extensionName';
o si quieres dejarlo usa:
DROP EXTENSION 'extensionName';
Con psqltambién puede comprobar si la extensión se ha instalado correctamente utilizando \dxy encontrar más detalles sobre la extensión utilizando \dx+ extensioName. Devuelve información adicional sobre la extensión, como qué paquetes se utilizan con ella.
Si la extensión no está disponible en su versión de Postgres, entonces necesita descargar las bibliotecas y archivos binarios necesarios y ubicarlos en /usr/share/conrib
En la terminal psql ponga:
\i <path to contrib files>
en ubuntu suele ser /usr/share/postgreslq/<your pg version>/contrib/<contrib file>.sql
Cómo descargar e instalar si tiene SUSE. Como ejemplo, estoy descargando el módulo tablefunc para poder usar la tabla de referencias cruzadas. Tengo PostgreSQL 9.6.1.
haga clic derecho en el escritorio, terminal, escriba:
sudo zypper in postgreql-contrib
Ingrese las credenciales, continúe escribiendo:
y
Ejecutar consulta (ejecuté la mía desde pgAdminIII):
CREATE EXTENSION tablefunc;
Ahora debería tener la crosstabfunción.
No tuve que reiniciar.
DROP EXTENSION extension_name [, ...]