Можно ли получить операторы 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).