Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
いいえ、ありません
- (SQL)クエリはDBMSサーバーで実行されます 、トリガー内のコードも同様です
- Pythonコードはクライアントで実行されます これは別のプロセスであり、別のユーザーによって実行される可能性があり、別のマシンで実行される可能性もあります。
サーバー(状態を検出する)とクライアント(スタックダンプを実行する必要がある)の間の唯一の接続は、接続されたソケットです。クライアントが自分自身をstackddumpするために使用するステータスコードによって、サーバーの応答(存在する場合)を拡張しようとすることができます。これは、トリガーが現在のトランザクションの一部であり、無関係なプロセスの一部ではない場合にのみ機能します。
もう1つの方法は、大量のロギングです。 DBMSにすべての書き込みをさせる SQLをログファイルに送信しました。これにより、大量のログエントリが発生する可能性があり、検査する必要があります。