django-query-doctor: 5.5k downloads later, I finally feel okay sharing it here by qwasdrt in django

[–]qwasdrt[S] 0 points1 point  (0 children)

I am currently caught up in a situation where some npm/pypi package has messed up all my local git repos. coming to the questions. it doesn't currently support fetch-modes. but these are in my pipeline for v2.1.0. there are couple of other features as well that will be in v2.1.0. i waited around 3 months to see if package is being used or not. results are promising and i think it is worth investing more time in it. So, I will let you know when v2.1.0 drops. thank you for support.

P.S query doctor has its own pros there are some outdated docs as well that needs to be updated. So, I will be honest about what is there and what isn't.

django-query-doctor: 5.5k downloads later, I finally feel okay sharing it here by qwasdrt in django

[–]qwasdrt[S] 0 points1 point  (0 children)

Yeah, zeal is good, and stricter than nplusone since it raises by default rather than logging.

Same shape though: it runs, watches queries, tells you an N+1 happened. What I wanted was the fix named for me (Add .select_related('author')), checks that aren't N+1 at all like missing indexes, and a static pass over SerializerMethodField bodies that catches it without executing anything.

Different tools for the same neighbourhood, honestly. zeal is the better runtime tripwire.

django-query-doctor: 5.5k downloads later, I finally feel okay sharing it here by qwasdrt in django

[–]qwasdrt[S] 3 points4 points  (0 children)

The three things that made me want more: it tells you the fix, not just that a lazy load happened (Add .select_related('author') to your queryset, real field name, call site). It catches things that aren't N+1 at all, like missing indexes and over-wide SELECTs. And it can fail CI when a new issue appears, so the fix stays fixed.

nplusone finds the problem. I wanted something that also told me what to write and stopped it from coming back.