logging — Отслеживание активности базы данных Postgres, вызванной одним вызовом PHP-скрипта

Можно ли отслеживать активность базы данных с начала, до конца вызова сценария PHP?

Например, допустим, у меня есть скрипт, который создает новую запись для пользователя в базе данных. Вы заполняете форму, нажимаете «Подтвердить» и при условии, что все данные действительны, сценарий воздействует на несколько таблиц, вставляя данные.

Скрипт вставляет данные в основную пользовательскую таблицу; (имя, адрес, телефон и т. д.) возвращается новый ИД пользователя, а затем также добавляется запись в таблицу отдела (ИД пользователя, отправление) и сумма зарплаты в таблицу заработной платы (ИД пользователя, зарплата).

Есть ли способ увидеть все таблицы, на которые повлиял сценарий, порядок их использования и данные, переданные им для одного вызова?

Дополнительная информация: я использую Ubuntu 14.04 LTS с Apache 2.4.7, PHP 5.5.9 и Postgres 9.3.5. Я единственный пользователь этой машины; Все будет работать локально.

В конечном итоге я хочу запустить скрипт и посмотреть, что он делает в БД Postgres.

Спасибо.

1

Решение

Вы можете сделать это на стороне сервера, установив log_statement = 'all' и установка подходящего log_line_prefix включить идентификатор внутреннего процесса, идентификатор транзакции и т. д.

Вы можете найти полезным установить application_name в строке подключения клиента или SET application_name = 'blah' в вашем скрипте, так что его легче найти и в логах.

Обратите внимание, что вы можете установить log_statement для каждого пользователя с ALTER USER blah SET log_statement = 'all'или для каждой базы данных с ALTER DATABASE blah SET log_statement = 'all', Вы можете очистить настройки позже с ALTER ... RESET log_statement,

Использование журналов формата CSV также облегчает эту задачу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]