406 Stimmen

Mit psql, wie kann ich installierte Erweiterungen in einer Datenbank auflisten?

Wie kann ich alle Erweiterungen auflisten, die bereits in einer Datenbank oder einem Schema von psql installiert sind?

Siehe auch

655voto

In psql wäre das

\dx

Siehe das Handbuch von psql für Details.

Wenn man es im einfachen SQL machen würde, wäre es ein Select auf pg_extension:

SELECT * 
FROM pg_extension;

133voto

Dave Glassborow Punkte 3015

Zusätzlich, wenn Sie wissen möchten, welche Erweiterungen auf Ihrem Server verfügbar sind: SELECT * FROM pg_available_extensions.

Siehe pg_available_extensions und pg_available_extension_versions.

16voto

hit3k Punkte 1050

Dieses SQL-Abfrage gibt eine Ausgabe ähnlich wie \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;

Dank an https://blog.dbi-services.com/listing-the-extensions-available-in-postgresql/

13voto

Nebulastic Punkte 7640

Die folgende Abfrage gibt eine Liste der installierten Erweiterungen und ihrer Versionen aus:

SELECT oid, extname, extversion FROM pg_extension;

oid

extname

extversion

13763

plpgsql

1.0

18536

http

1.5

22466

dict_xsyn

1.0

Wenn Sie wissen möchten, welche anderen Erweiterungen und ihre Versionen für die Installation verfügbar sind, führen Sie die folgende Abfrage aus:

SELECT name, default_version, installed_version 
  FROM pg_available_extensions;

name

default_version

installed_version

dict_xsyn

1.0

1.0

seg

1.4

NULL

pgcrypto

1.3

NULL

plpgsql

1.0

1.0

Um eine Erweiterung zu installieren (falls sie nicht vorhanden ist), führen Sie die folgende Abfrage aus:

CREATE EXTENSION [ IF NOT EXISTS ] extension_name;

Um eine Erweiterung auf eine neuere Version zu aktualisieren, verwenden Sie die folgende Abfrage:

ALTER EXTENSION extension_name UPDATE TO 'new_version';

12voto

Sumit S Punkte 194

Nur ein Kommentar, ob Sie wie oben vorgeschlagen in psql ausführen, entweder

\dx

oder

select extname from pg_extension ;

Denken Sie daran, dass

  1. Stellen Sie sicher, dass Sie mit der richtigen Datenbank verbunden sind. Da Ihre Erweiterungen datenbankspezifisch geladen sind.
  2. Alle Erweiterungen, die zur template1-Datenbank hinzugefügt wurden, werden per Definition in allen Datenbanken angezeigt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X