Маршрутизация базы данных 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 источник