简单问题 - 我正在multi-db成功使用automatic routing设置,如遗留数据库(非托管)中所述。现在我想测试它。我已经设置了一个测试人员绕过managed problem并且我可以确认我正在创建数据库并且正如预期的那样。
我的问题是数据库路由仍在尝试查看非测试数据库。如何设置我的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
非常欣赏这个额外的眼球;)
由于
答案 0 :(得分:3)
好的 - 所以这就是发生的事情。事实证明它一直在完全正常工作,但是两个不同的问题导致我的测试无法通过。在这种情况下,我正在针对遗留方法测试django查询方法。我没有通过我的测试,因为遗留方法没有查看测试数据库而是查看原始数据库。我解决了这个问题然后我意识到在testrunner中没有创建的程序。
一旦这两个问题得到纠正,一切都神奇地落在一起......
某人HTH。