Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
Не, няма
- (SQL) заявката се изпълнява на DBMS-сървър , както и кодът вътре в тригера
- Кодът на Python се изпълнява на клиента което е различен процес, вероятно изпълнен от различен потребител и може би дори на различна машина.
Единствената връзка между сървъра (който открива условието) и клиента (който трябва да извърши dump на стека) е свързаният сокет. Можете да опитате да разширите отговора на сървъра (ако има такъв) с някакъв код на състояние, който се използва от клиента за самия stackddump. Това ще работи само ако тригерът е част от текущата транзакция, а не от някакъв несвързан процес.
Другият начин е:масивна сеч. Накарайте СУБД да пише всеки изпрати SQL към своя лог файл. Това може да причини огромни количества записи в журнала, които трябва да проверите.