Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
Ne, není
- Dotaz (SQL) se provádí na serveru DBMS , stejně jako kód uvnitř spouštěče
- Kód Pythonu se spouští na klientovi což je jiný proces, možná prováděný jiným uživatelem a možná dokonce na jiném počítači.
Jediným spojením mezi serverem (který detekuje stav) a klientem (který potřebuje provést stackdump) je připojený soket. Můžete zkusit rozšířit odpověď serveru (pokud existuje) o nějaký stavový kód, který klient používá k samotnému stackddump. To bude fungovat pouze v případě, že je spouštěč součástí aktuální transakce, nikoli nějakého nesouvisejícího procesu.
Druhý způsob je:masivní těžba dřeva. Nechte DBMS zapisovat každý odeslal SQL do svého logfilu. To může způsobit velké množství položek protokolu, které musíte zkontrolovat.