PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Debuggen Sie die PostgreSQL-Funktion mit pgAdmin

Sie müssen das Debuggen an zwei Stellen aktivieren. Auf PGAdmin und auf der Datenbank selbst. Der Artikel, auf den Sie verwiesen haben, erklärt es wunderbar, aber es gab einige Nuancen.

PGAdmin

Beim Aktualisieren Ihrer postgresql.conf Datei zum Laden der Debugging-Bibliothek, habe ich PGAdmin unter Windows ausgeführt also war die Datei hier:

C:\Program Files\PostgreSQL\9.4\data\postgresql.conf

Und den Pfad zur plugin_debugger.dll war eigentlich

$libdir/plugin_debugger.dll

nicht

$libdir/plugins/plugin_debugger.dll

wie im Artikel angegeben. Also Ihre postgresql.conf bräuchte eine Zeile wie diese

shared_preload_libraries = '$libdir/plugin_debugger.dll'

Suchen Sie im Zweifelsfall nach der eigentlichen .dll. Unter Linux ist die gesuchte Datei plugin_debugger.so . Vergessen Sie nicht, die postgresql.conf zu ändern Datei erfordert einen Neustart, damit die Änderung wirksam wird.

PostgreSQL-Datenbank

Angenommen, Sie betreiben Ihre PostgreSQL-Datenbank auf einem Linux-Server dieser Kern leistet hervorragende Arbeit bei der Erklärung, wie die Abhängigkeiten heruntergeladen werden, um das Debugging zu aktivieren. Stellen Sie sicher, dass Sie bei der Installation als root ausgeführt werden.

Der leicht zu übersehende Teil besteht darin, den Befehl für die eigentliche Datenbank auszugeben, die Sie debuggen möchten. Für neuere Versionen von PostgreSQL müssen Sie nur Folgendes tun:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

Wenn das keinen Fehler zurückgibt, sollten Sie loslegen können.

Einige zusätzliche Anmerkungen:

  • Wie oben erwähnt, können Sie nur mit einem Superuser-Konto debuggen
  • Aus ihren Dokumenten Sie können nur pl/pgsql-Funktionen debuggen. Wenn Ihre Funktion also so etwas wie LANGUAGE c sagt PGAdmin zeigt nicht einmal eine Rechtsklick-Debug-Menüoption an, wenn Sie die Funktion auswählen. Suchen Sie nach etwas, das LANGUAGE plpgsql enthält und das Debug-Menü sollte angezeigt werden.