Мониторинг запросов к базе данных в Django, привязанных к номеру строки
-
06-07-2019 - |
Вопрос
В нашем проекте происходят странные посторонние попадания в БД. Есть ли способ отслеживать, откуда поступают запросы, возможно, по номеру строки? Промежуточное программное обеспечение для печати SQL помогает, но мы рассмотрели такие запросы, которые могут быть сгенерированы, и не могут найти источник.
Если вышеперечисленное невозможно, любые рекомендации по сужению источника будут с благодарностью.
Решение
Чтобы найти код, выполняющий запросы, вы можете установить django-debug-toolbar чтобы выяснить, какие команды выполняются и над какими таблицами они работают.
Как только вы это сделаете, попробуйте подключить соответствующие сигналы Django для этих моделей и использования print
и assert
для сужения кода.
Я уверен, что есть лучший способ сделать это (отладчик Python?), но это первое, что приходит на ум, и, вероятно, что я в конечном итоге сделаю сам.
Другие советы
если вы хотите отслеживать SQL-запросы для оптимизации производительности и отладки, а также как отслеживать вызов запросов в Django для этого вам поможет этот блог
Отслеживание SQL-запросов для запроса с использованием Django р>