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 кто-то.

Другие вопросы по тегам