Is there a way to log the Python/Django traceback from within a PostgreSQL trigger?
Nie, nie ma
- Kwerenda (SQL) jest wykonywana na serwerze DBMS , podobnie jak kod wewnątrz wyzwalacza
- Kod Pythona jest wykonywany na kliencie który jest innym procesem, prawdopodobnie wykonywanym przez innego użytkownika, a może nawet na innej maszynie.
Jedynym połączeniem między serwerem (który wykrywa warunek) a klientem (który musi wykonać zrzut stosu) jest połączone gniazdo. Możesz spróbować rozszerzyć odpowiedź serwera (jeśli istnieje) o jakiś kod statusu, który jest używany przez klienta do samego stosu zrzutu. To zadziała tylko wtedy, gdy wyzwalacz jest częścią bieżącej transakcji, a nie jakiegoś niepowiązanego procesu.
Inny sposób to:masowe wycinanie. Niech DBMS zapisuje co przesłał SQL do swojego pliku dziennika. Może to spowodować ogromne ilości wpisów w dzienniku, które trzeba sprawdzić.