Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
Nej, det finns inte
- (SQL)-frågan körs på DBMS-servern , och så är koden inuti triggern
- Python-koden körs på klienten vilket är en annan process, möjligen utförd av en annan användare, och kanske till och med på en annan dator.
Den enda anslutningen mellan servern (som upptäcker tillståndet) och klienten (som behöver utföra stackdumpen) är den anslutna socket. Du kan försöka utöka serverns svar (om det finns en) med någon statuskod, som används av klienten för att stackddumpa sig själv. Detta fungerar bara om utlösaren är en del av den aktuella transaktionen, inte av någon orelaterade process.
Det andra sättet är:massiv avverkning. Få DBMS att skriva varje skickade SQL till sin loggfil. Detta kan orsaka enorma mängder loggposter som du måste inspektera.