Трябва да разрешите отстраняването на грешки на две места. В PGAdmin и в самата база данни. Статията, на която се позовахте, върши чудесна работа, като я обяснява, но имаше някои нюанси.
PGAdmin
Когато актуализирате вашия postgresql.conf
файл за зареждане на библиотеката за отстраняване на грешки, аз изпълних PGAdmin на Windows
така че файлът беше тук:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
И пътя до plugin_debugger.dll
всъщност беше
$libdir/plugin_debugger.dll
не
$libdir/plugins/plugin_debugger.dll
както е посочено в статията. Така че вашият postgresql.conf
ще има нужда от ред като този
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Потърсете действителния .dll, ако се съмнявате. Ако сте на Linux, файлът, който ще търсите, е plugin_debugger.so
. Не забравяйте, че промяната на postgresql.conf
файл ще изисква рестартиране, за да влезе в сила промяната.
База данни на PostgreSQL
Ако приемем, че изпълнявате вашата база данни PostgreSQL на Linux сървър това същност върши отлична работа при обяснението как да изтеглите зависимостите за разрешаване на отстраняване на грешки. Уверете се, че работите като root, когато инсталирате.
Частта, която е лесно да се пропусне, е издаването на командата срещу действителната база данни, която искате да отстраните. За по-новите версии на PostgreSQL всичко, което трябва да направите, е следното:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Ако това не върне грешка, трябва да сте готови.
Някои допълнителни неща за отбелязване:
- Както споменахме по-горе, можете да отстранявате грешки само когато работите като акаунт на супер потребител
- От техните документи
можете да дебъгвате само pl/pgsql функции. Така че, ако вашата функция казва нещо като
LANGUAGE c
PGAdmin дори няма да покаже опция от менюто Debug с десен бутон, когато изберете функцията. Потърсете нещо, което имаLANGUAGE plpgsql
и менюто за отстраняване на грешки трябва да се покаже.