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

Log Stacktrace des aktuellen Python-Interpreters über PostgreSQL-Trigger

Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?

Nein, gibt es nicht

  • Die (SQL-)Abfrage wird auf dem DBMS-Server ausgeführt , und ebenso der Code innerhalb des Triggers
  • Der Python-Code wird auf dem Client ausgeführt Dies ist ein anderer Prozess, der möglicherweise von einem anderen Benutzer und vielleicht sogar auf einem anderen Computer ausgeführt wird.

Die einzige Verbindung zwischen dem Server (der die Bedingung erkennt) und dem Client (der den Stackdump durchführen muss) ist der verbundene Socket. Sie könnten versuchen, die Antwort des Servers (falls vorhanden) um einen Statuscode zu erweitern, der vom Client verwendet wird, um sich selbst zu stackddumpen. Dies funktioniert nur, wenn der Trigger Teil der aktuellen Transaktion ist, nicht eines nicht verwandten Prozesses.

Der andere Weg ist:massive Protokollierung. Lassen Sie das DBMS alle schreiben übermittelte SQL an seine Protokolldatei. Dies kann zu enormen Mengen an Log-Einträgen führen, die Sie prüfen müssen.