Du skal aktivere fejlfinding to steder. På PGAdmin og på selve databasen. Den artikel, du refererede til, gør et vidunderligt stykke arbejde med at forklare det, men der var nogle nuancer.
PGAdmin
Når du opdaterer din postgresql.conf
fil for at indlæse fejlfindingsbiblioteket, jeg kørte PGAdmin på Windows
så filen var her:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
Og stien til plugin_debugger.dll
var faktisk
$libdir/plugin_debugger.dll
ikke
$libdir/plugins/plugin_debugger.dll
som angivet i artiklen. Så din postgresql.conf
ville have brug for en linje som denne
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Søg efter den faktiske .dll, hvis du er i tvivl. Hvis du er på Linux, er den fil, du leder efter, plugin_debugger.so
. Glem ikke at ændre postgresql.conf
fil kræver en genstart for at ændringen kan træde i kraft.
PostgreSQL-database
Forudsat at du kører din PostgreSQL-database på en Linux-server denne kerne gør et fremragende stykke arbejde med at forklare, hvordan man downloader afhængighederne for at aktivere debugging. Sørg for, at du kører som root, når du installerer.
Den del, der er let at gå glip af, er at udstede kommandoen mod den faktiske database, du vil fejlrette. For nyere versioner på PostgreSQL skal du blot gøre dette:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Hvis det ikke returnerer en fejl, burde du være klar.
Nogle yderligere ting at bemærke:
- Som nævnt ovenfor kan du kun fejlfinde, når du kører som en superbrugerkonto
- Fra deres dokumenter
du kan kun debugge pl/pgsql-funktioner. Så hvis din funktion siger noget som
LANGUAGE c
PGAdmin vil ikke engang vise et højreklik på Debug-menuen, når du vælger funktionen. Se efter noget, der harLANGUAGE plpgsql
og fejlretningsmenuen skulle vises.