Psql kullanarak veritabanına yüklenmiş uzantıları nasıl listeleyebilirim?


Yanıtlar:


363

Psql olarak bu olurdu

\dx

Ayrıntılar için kılavuza bakın: http://www.postgresql.org/docs/current/static/app-psql.html

Düz SQL'de yapmak bir seçim olacaktır pg_extension:

SELECT * 
FROM pg_extension

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


@SoichiHayashi: muhtemelen eski bir Postgres sürümü kullanıyorsunuz
a_horse_with_no_name

PostgreSQL sunucusu 9.3.5 çalıştırıyorum, ancak CentOS 6.5 ile gelen 8.4.20 psql istemcisi kullanıyorum. Belki de en son psql sürümünü yüklemem gerekiyor?
Soichi Hayashi

@SoichiHayashi \dx , özellik kullanıma sunulduğunda 9.0 ile sunulan bir psql komutudur create extension. Yani evet, sizin de yükseltmeniz gerekiyor psql(her zaman psqlDB sürümünüzle eşleşen sürümü kullanmalısınız)
a_horse_with_no_name

1
Ne kadar ironik. stackoverflow.com/questions/9463318/… Yorumlardan biri, bu tür soruların (ve \? gibi gerçekten zor şeyler yapamamanın) a_horse_with_no_name: D'yi rahatsız edeceği yönündeydi. Adil olmak gerekirse, bu cevap başka yararlı bilgiler içerir.
John Powell

11
belki liste için tam SQL sorgusu söz olabilir:select * from pg_extension
icl7126

82

Ayrıca, sunucunuzda hangi uzantıların bulunduğunu bilmek istiyorsanız: SELECT * FROM pg_available_extensions


5

Bu SQL sorgusu aşağıdakine benzer çıktılar verir \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/ için teşekkürler

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.