sql >> Database >  >> RDS >> PostgreSQL

Debug PostgreSQL-functie met pgAdmin

U moet foutopsporing op twee plaatsen inschakelen. Op PGAdmin en op de database zelf. Dat artikel waarnaar u verwijst, legt het geweldig uit, maar er waren enkele nuances.

PGAdmin

Bij het bijwerken van uw postgresql.conf bestand om de foutopsporingsbibliotheek te laden, was ik met PGAdmin op Windows dus het bestand was hier:

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

En het pad naar de plugin_debugger.dll was eigenlijk

$libdir/plugin_debugger.dll

niet

$libdir/plugins/plugin_debugger.dll

zoals aangegeven in het artikel. Dus uw postgresql.conf zou een regel als deze nodig hebben

shared_preload_libraries = '$libdir/plugin_debugger.dll'

Zoek naar de daadwerkelijke .dll als je twijfelt. Als je Linux gebruikt, is het bestand dat je zoekt plugin_debugger.so . Vergeet niet dat het wijzigen van de postgresql.conf bestand moet opnieuw worden opgestart om de wijziging door te voeren.

PostgreSQL-database

Ervan uitgaande dat u uw PostgreSQL-database uitvoert op een Linux-server deze gist doet uitstekend werk door uit te leggen hoe de afhankelijkheden moeten worden gedownload om foutopsporing mogelijk te maken. Zorg ervoor dat u als root werkt wanneer u installeert.

Het deel dat gemakkelijk over het hoofd wordt gezien, is het uitvoeren van de opdracht tegen de daadwerkelijke database die u wilt debuggen. Voor nieuwere versies op PostgreSQL hoeft u alleen dit te doen:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

Als dat geen fout retourneert, zou je klaar moeten zijn om te gaan.

Enkele aanvullende opmerkingen:

  • Zoals hierboven vermeld, kunt u alleen fouten opsporen als u werkt als een supergebruikersaccount
  • Van hun documenten u kunt alleen pl/pgsql-functies debuggen. Dus als je functie iets zegt als LANGUAGE c PGAdmin zal niet eens een rechtsklik menuoptie voor foutopsporing tonen wanneer u de functie selecteert. Zoek naar iets dat LANGUAGE plpgsql . heeft en het Debug-menu zou moeten verschijnen.


  1. Grootte van partitietabel in PostgreSQL 9.0

  2. MySQL selecteer na rij op specifieke regels

  3. Waar c3p0-afhankelijkheid in Tomcat Container te plaatsen

  4. Hoe stel ik Collation in MySQL-database in met Django 2.* mysqlclient?