Можно ли получить операторы SQL, сгенерированные Class::DBI?

Я хочу найти точные операторы SQL, сгенерированные пакетом Perl ORM, таким как Class:: DBI. Я не ищу SQL, сгенерированный для простых вставок и удалений, но для модификаций строк, которые являются результатом немного сложных манипуляций с объектами (например, вставка строк в таблицу, которая является дочерней по отношению к строке в родительской таблице)

Есть ли способ получить это?

2 ответа

Решение

Class::DBI использует DBI, поэтому вы можете включить трассировку всех операторов SQL через переменную окружения:

DBI_TRACE=3=dbi.log your-perl-script

Или внутри Perl, перед выполнением каких-либо утверждений:

use DBI;
DBI->trace(2, 'dbi.log');

Смотрите http://metacpan.org/pod/DBI

Так как ты сказал "такой как"...

Вы можете установить переменную среды DBIC_TRACE в 1 если вы используете DBIx:: Class (который имеет уровень совместимости Class::DBI).

Другие вопросы по тегам