Используя psql, как составить список расширений, установленных в базе данных?


Ответы:


363

В PSQL это было бы

\dx

Подробности см. В руководстве: http://www.postgresql.org/docs/current/static/app-psql.html.

Делая это в простом SQL, это будет выбор pg_extension:

SELECT * 
FROM pg_extension

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


@SoichiHayashi: тогда вы, вероятно, используете старую версию Postgres
a_horse_with_no_name

Я использую PostgreSQL сервер 9.3.5, но я использую psql клиент 8.4.20, который поставляется с CentOS 6.5. Может быть, мне нужно установить последнюю версию PSQL?
Соичи Хаяси

@SoichiHayashi \dx - это команда psql, которая была введена в 9.0, когда эта create extensionфункция была выпущена. Так что да, вам также нужно обновить свою версию psql(вы всегда должны использовать psqlверсию, соответствующую версии вашей БД)
a_horse_with_no_name

1
Какая ирония. stackoverflow.com/questions/9463318/… Одним из комментариев было то, что такие вопросы (и общая неспособность делать действительно сложные вещи вроде \?) раздражают a_horse_with_no_name: D. Чтобы быть справедливым, этот ответ содержит другую полезную информацию.
Джон Пауэлл

11
Вы могли бы упомянуть полный SQL-запрос для списка:select * from pg_extension
icl7126

82

Кроме того, если вы хотите узнать, какие расширения доступны на вашем сервере: SELECT * FROM pg_available_extensions


5

Этот SQL-запрос дает вывод, похожий на \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;

Благодаря https://blog.dbi-services.com/listing-the-extensions-available-in-postgresql/

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.