sql >> Databasteknik >  >> RDS >> PostgreSQL

Felsök PostgreSQL-funktionen med pgAdmin

Du måste aktivera felsökning på två ställen. På PGAdmin och på själva databasen. Den artikeln du refererade till gör ett fantastiskt jobb med att förklara det men det fanns några nyanser.

PGAdmin

När du uppdaterar din postgresql.conf fil för att ladda felsökningsbiblioteket, jag körde PGAdmin på Windows så filen var här:

C:\Program Files\PostgreSQL\9.4\data\postgresql.conf

Och sökvägen till plugin_debugger.dll var faktiskt

$libdir/plugin_debugger.dll

inte

$libdir/plugins/plugin_debugger.dll

som anges i artikeln. Så din postgresql.conf skulle behöva en sådan här rad

shared_preload_libraries = '$libdir/plugin_debugger.dll'

Sök efter den faktiska .dll om du är osäker. Om du använder Linux är filen du letar efter plugin_debugger.so . Glöm inte att ändra postgresql.conf filen kräver en omstart för att ändringen ska träda i kraft.

PostgreSQL-databas

Förutsatt att du kör din PostgreSQL-databas på en Linux-server denna sammanfattning gör ett utmärkt jobb med att förklara hur man laddar ner beroenden för att möjliggöra felsökning. Se till att du kör som root när du installerar.

Den del som är lätt att missa är att utfärda kommandot mot den faktiska databasen du vill felsöka. För nyare versioner på PostgreSQL är allt du behöver göra detta:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

Om det inte returnerar ett fel bör du vara igång.

Några ytterligare saker att notera:

  • Som nämnts ovan kan du bara felsöka när du kör som ett superanvändarkonto
  • Från deras dokument du kan bara felsöka pl/pgsql-funktioner. Så om din funktion säger något som LANGUAGE c PGAdmin visar inte ens ett högerklicksfelsökningsmenyalternativ när du väljer funktionen. Leta efter något som har LANGUAGE plpgsql och felsökningsmenyn ska visas.


  1. MySQL-UPPDATERING:Topp 5 tips för T-SQL-utvecklare

  2. mysqli infoga - men bara om det inte är en dubblett

  3. Hur kan PL/SQL-grammatiken som ingår i ANTLR4 testas?

  4. Att anropa lagrad funktion eller procedur kommer inte att infogas och kvarstår ändringar