Как получить курсор для маршрутизируемой базы данных? - PullRequest
0 голосов
/ 25 октября 2011

django.db.connection.cursor () оказывается возвращающим соединение с базой данных по умолчанию, а не с маршрутизируемой.

Как создать курсор на базе данных, выбранной для моего приложения Django, с помощью конфигурации проекта

Ответы [ 2 ]

2 голосов
/ 25 октября 2011

django.db предоставляет словарь всех соединений в соответствии с ключами, которые вы используете в своем словаре в модуле настроек:

from django.db import connections
cursor = connections['my_db_alias'].cursor()

Это задокументировано здесь .

0 голосов
/ 26 октября 2011

Хорошо, я изучил класс django.db.models.Model и обнаружил, что маршрутизируемое соединение каждый раз получается через маршрутизатор:

from django.db import connections, router

using = using or router.db_for_write(self.__class__, instance=self)
connection = connections[using]

К сожалению, маршрутизатор принимает подкласс Model в качестве первого аргумента своего метода db_for_write ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...