доктрина - как посмотреть, какие запросы будут выполняться на флеше - PullRequest
0 голосов
/ 08 октября 2019

Я отлаживаю довольно сложную проблему, которая возникает только в конкретном случае (для примера, скажем, один из 10000). Мне удалось выделить один случай, но если я выполню код, изменится БД, и у меня будет только один выстрел, чтобы найти проблему.

Я могу сделать снимок текущего состояния и вернуться к нему, а затем запустить его. снова (не могу использовать транзакцию, потому что там есть несколько таблиц MyISAM и одно изменение). Но это отнимает много времени и, честно говоря, немного расстраивает.

Так что лучшим решением для меня было бы получить список запросов, которые должны быть выполнены, и остановить сценарий (теоретически я должен быть в состоянииполучить их из единицы работы, но не могу найти как).

Итак ... как я могу получить список запросов, которые БУДУТ выполняться?

1 Ответ

0 голосов
/ 18 октября 2019

Я думаю, что SQLLogger - это то, что вы ищете. Это регистрирует все запросы, выполненные Doctrine во время запроса к ответу / файлу / что угодно.

https://www.doctrine -project.org / api / dbal / 2.5 / Doctrine / DBAL / Logging / SQLLogger.html

Однако запросы будут выполняться в базе данных. Поэтому вам нужно будет сделать резервную копию вашей базы данных и запустить ее снова, но по крайней мере у вас будет список SQL-запросов для отладки, а не ситуация «черного ящика».

...