Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
Nee, er is geen
- De (SQL)-query wordt uitgevoerd op de DBMS-server , en dat geldt ook voor de code in de trigger
- De Python-code wordt uitgevoerd op de client wat een ander proces is, mogelijk uitgevoerd door een andere gebruiker, en misschien zelfs op een andere machine.
De enige verbinding tussen de server (die de conditie detecteert) en de client (die de stackdump moet uitvoeren) is de aangesloten socket. Je zou kunnen proberen het antwoord van de server (als die er is) uit te breiden met een statuscode, die door de client wordt gebruikt om zichzelf te stackddumpen. Dit werkt alleen als de trigger deel uitmaakt van de huidige transactie, niet van een niet-gerelateerd proces.
De andere manier is:massale houtkap. Laat de DBMS elke write schrijven verzonden SQL naar zijn logbestand. Dit kan enorme hoeveelheden logboekvermeldingen veroorzaken, die u moet inspecteren.