When using multiple databases, I would love for a simple way to declare which database should be used during execution of django ORM calls. Perhaps this could even use a context manager and look something like this:
# declare that all calls within this context should default to using 'readonly' db instead of 'default'
with database('readonly'):
things = models.MyThing.objects.all()
# inside this function call the 'readonly' db would be used too (unless overridden by `.using(...)`)
more_things = some_lib.some_function(things)
In my app I have a write database and a read-only replica. The read-only replica might have a delay, so I don’t want to use it in normal live requests, but I would like certain dashboards to use it. For this reason I assume that the
database router approach doesn't properly apply?
Does something like this exist? If not, any thoughts on if it might be useful and where I might consider poking around in the ORM?