SQL Watch

Aug 19, 2009 13:14

Иногда нужно узанть какой именно код меняет те или иные данные в базе.

Пример из жизни: при выполнении операции регистрации пользователя неожиданно создавалась
запись в таблице счетов, при том - дважды, что было неправильно.
В коде метода регистрации пользователя никаких упоминаний счетов не было.
Чудеса были скрыты в аспекте, который неявно цеплялся к операции регистрации
и делал своё черное дело.

Ещё пример: в большом блоке кода, который редактирует десятки таблиц и
сотни строк, найти тот участок который модифицирует нужную строку, - как?

Я написал небольшой поект, может быть кому нибудь будет полезен:
http://code.google.com/p/sqlwatch/

Весь проект это один класс - логгер к MySQL.
Он позволяет задавать SQL запросы для мониторинга,
и в случае если результат выборки по запросу меняется это можно обработать,
например поставить брейкпоинт и пройти по стеку до строчки в которой непосредственно
был вызван запрос INSERT/UPDATE/etc.

if (watch("SELECT count(*) from city")) {
System.out.println("Changes detected!"); //place breakpoint here
}
Previous post Next post
Up