Ответ 1
Вы должны включить отладку в двух местах. В 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 даже не отобразит параметр "Отладка" правой кнопкой мыши при выборе функции. Найдите что-то, что имеетLANGUAGE plpgsql
, и меню Debug должно показать.