jbalogh/django-cache-machine — pull request #29 by Bpless (2012-06-29 15:07:18+00:00)
Title: Patch to make Cache Machine play nicely with multiple Databases

I was having an issue where some cached queries were being pulled and stored from a slave database (e.g. Profile.objects.using('slave').all()), whereas others were being pulled from the master.

That led to unpredictable behavior during attempts to add/update ManyToMany and FK relations on a model instance pulled from master. If the M2M queryset to be added is pulled from the slave, Django raises a ValueError. You can't save relations across different DBs.

I went ahead and added db info to the query key to namespace the different databases. It's working for me and it doesn't add much overhead.

I am more than willing to live with fewer cache hits to avoid the headache of erratic, error prone code.

Can you see any issues with this code as far as invalidation goes?