Musisz włączyć debugowanie w dwóch miejscach. Na PGAdmin i na samej bazie danych. Ten artykuł, do którego się odwołujesz, świetnie się tłumaczy, ale były pewne niuanse.
PGAdministrator
Podczas aktualizowania pliku postgresql.conf
do załadowania biblioteki debugowania, uruchamiałem PGAdmin w systemie Windows
więc plik był tutaj:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
I ścieżka do pliku plugin_debugger.dll
faktycznie
$libdir/plugin_debugger.dll
nie
$libdir/plugins/plugin_debugger.dll
jak określono w art. Więc twój postgresql.conf
potrzebowałbym takiej linii
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Jeśli masz wątpliwości, wyszukaj właściwy plik .dll. Jeśli korzystasz z Linuksa, plik, którego szukasz, to plugin_debugger.so
. Nie zapominaj, że zmiana postgresql.conf
plik będzie wymagał ponownego uruchomienia, aby zmiany zaczęły obowiązywać.
Baza danych PostgreSQL
Zakładając, że używasz bazy danych PostgreSQL na serwerze Linux ten opis wykonuje świetną robotę w wyjaśnianiu, jak pobrać zależności umożliwiające debugowanie. Upewnij się, że korzystasz z konta root podczas instalacji.
Częścią, którą łatwo pominąć, jest wydanie polecenia względem rzeczywistej bazy danych, którą chcesz debugować. W przypadku nowszych wersji PostgreSQL wszystko, co musisz zrobić, to:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Jeśli to nie zwróci błędu, powinieneś iść.
Kilka dodatkowych rzeczy wartych uwagi:
- Jak wspomniano powyżej, możesz debugować tylko wtedy, gdy działasz jako konto superużytkownika
- Z ich dokumentów
możesz tylko debugować funkcje pl/pgsql. Więc jeśli twoja funkcja mówi coś w stylu
LANGUAGE c
PGAdmin nie wyświetli nawet opcji menu debugowania po kliknięciu prawym przyciskiem myszy po wybraniu funkcji. Poszukaj czegoś, co maLANGUAGE plpgsql
i powinno pojawić się menu Debug.