django маршрутизиране на база данни с транзакции

Позовавайки се на примера в документацията на Django за множество бази данни в едно приложение,

https://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

" Също така не взема предвид взаимодействието на транзакциите със стратегията за използване на базата данни. "

Как да се справя с взаимодействието, посочено по-горе.

Сценарият е следният:

Използвам postgresql като моя база данни. Настроил съм реплика и искам всички таблици за четене на „auth“ да отидат в реплика. Следвайки документацията, написах рутер за база данни. Сега всеки път, когато се опитам да вляза в приложението си, извежда следната грешка.

DatabaseError: cannot execute UPDATE in a read-only transaction.

Това се случва, когато Django се опита да запази времето на "last_login". Тъй като в същия изглед той първо извлича записа от репликата и след това се опитва да актуализира времето за last_login. Тъй като това се случва в една транзакция, се използва същата база данни, т.е. реплика.

Как да се справя с това?

мисли?


person kanishk    schedule 18.06.2013    source източник