Django тестирование multi-db с автоматической маршрутизацией
Простая проблема - я успешно использую multi-db с автоматической настройкой маршрутизации, как описано в устаревшей базе данных (которая неуправляема). Теперь я хочу проверить это. Я уже установил тестирующее средство, чтобы обойти управляемую проблему, и я могу подтвердить, что я создаю базы данных и как ожидалось.
Моя проблема в том, что маршрутизация базы данных все еще пытается посмотреть на не тестовую базу данных. Как мне настроить мой файл routers.py для просмотра базы данных test_ в тестовом режиме и не тестовой базы данных в любое другое время.
Должно быть просто, но я бью головой об стену над этим..
FWIW:
class PmCatalogRouter(object):
"""A router to control all database operations on models in
the PmCatalog application"""
def db_for_read(self, model, **hints):
"Point all operations on pmCatalog models to 'catalog'"
if model._meta.app_label == 'pmCatalog':
return 'catalog'
return None
def db_for_write(self, model, **hints):
"Point all operations on pmCatalog models to 'catalog'"
if model._meta.app_label == 'pmCatalog':
return 'catalog'
return None
def allow_syncdb(self, db, model):
"Make sure the pmCatalog app only appears on the 'catalog' db"
if db == 'catalog':
return model._meta.app_label == 'pmCatalog'
elif model._meta.app_label == 'pmCatalog':
return False
return None
Очень ценю дополнительные глазные яблоки на этом;)
Спасибо
1 ответ
ОК - вот что случилось. Оказывается, это все время работало, но две отдельные проблемы вызвали мои тесты. В этом случае я проверяю методы запросов django на устаревшие методы. Я не сдавал тест, потому что старые методы не смотрели на тестовую базу данных, а скорее на оригинальную базу данных. Я исправил эту проблему, а затем понял, что процедуры, не выполняемые, создаются в тестовом прогоне.
Как только эти две проблемы были исправлены, все волшебным образом сошлось...
HTH кто-то.