sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLトリガーを介して現在のPythonインタープリターのスタックトレースをログに記録する

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

    いいえ、ありません

    • (SQL)クエリはDBMSサーバーで実行されます 、トリガー内のコードも同様です
    • Pythonコードはクライアントで実行されます これは別のプロセスであり、別のユーザーによって実行される可能性があり、別のマシンで実行される可能性もあります。

    サーバー(状態を検出する)とクライアント(スタックダンプを実行する必要がある)の間の唯一の接続は、接続されたソケットです。クライアントが自分自身をstackddumpするために使用するステータスコードによって、サーバーの応答(存在する場合)を拡張しようとすることができます。これは、トリガーが現在のトランザクションの一部であり、無関係なプロセスの一部ではない場合にのみ機能します。

    もう1つの方法は、大量のロギングです。 DBMSにすべての書き込みをさせる SQLをログファイルに送信しました。これにより、大量のログエントリが発生する可能性があり、検査する必要があります。



    1. キャッチされないエラー:devtoolsがオフの状態で間違った順序でパケットを受信しました-Electron+MySQLノードドライバー+Webpack

    2. バッチスクリプトでpsqlpg_dumpコマンドを呼び出す

    3. PostgreSQLを使用して同じクエリの複数の行を更新する

    4. パラメータ化されたテーブル名