Usando psql, ¿cómo enumero las extensiones instaladas en una base de datos?

Respuestas:

363

En psql eso sería

\dx

Consulte el manual para más detalles: http://www.postgresql.org/docs/current/static/app-psql.html

Hacerlo en SQL simple sería una selección en pg_extension:

SELECT * 
FROM pg_extension

http://www.postgresql.org/docs/current/static/catalog-pg-extension.html

un caballo sin nombre
fuente
@SoichiHayashi: entonces probablemente estés usando una versión anterior de Postgres
a_horse_with_no_name
Estoy ejecutando el servidor PostgreSQL 9.3.5, pero estoy usando el cliente psql 8.4.20 que viene con CentOS 6.5. ¿Quizás necesito instalar la última versión de psql?
Soichi Hayashi
@SoichiHayashi \dx es un comando psql que se introdujo con 9.0 cuando create extensionse lanzó la función. Entonces, sí, también necesita actualizar su psql(siempre debe usar la psqlversión que coincida con su versión de base de datos)
a_horse_with_no_name
1
Que irónico. stackoverflow.com/questions/9463318/… Uno de los comentarios fue que tales preguntas (y la incapacidad general de hacer cosas realmente difíciles como \?) molestarían a_horse_with_no_name: D. Para ser justos, esta respuesta contiene otra información útil.
John Powell
11
quizás podría mencionar la consulta SQL completa para la lista:select * from pg_extension
icl7126
82

Además, si desea saber qué extensiones están disponibles en su servidor: SELECT * FROM pg_available_extensions

Dave Glassborow
fuente
5

Esta consulta SQL proporciona resultados similares a \dx:

SELECT e.extname AS "Name", e.extversion AS "Version", n.nspname AS "Schema", c.description AS "Description" 
FROM pg_catalog.pg_extension e 
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace 
LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass 
ORDER BY 1;

Gracias a https://blog.dbi-services.com/listing-the-extensions-available-in-postgresql/

hit3k
fuente