gpt4 book ai didi

django - django测试框架是否支持多个数据库?

转载 作者:行者123 更新时间:2023-12-02 07:03:47 25 4
gpt4 key购买 nike

我使用的是 django 1.2,我必须在我的服务器上设置第二个数据库项目。一旦我在我的设备上设置了第二个连接和路由器项目,我所有的测试用例甚至没有提到第二个数据库开始出现故障。运行应用程序工作正常,syncdb工作正常,只是我正在进行的测试(单元测试)的问题。

在我看来,第二个数据库从未创建过,即使我手动创建它作为 (test_mydbname) 它也会保留失败。

支持吗?

最佳答案

我必须添加一个 DefaultRouter,然后我的测试再次开始工作。似乎在测试场景中,django 不知道“默认”数据库。所有信息,包括测试数据库创建顺序:https://docs.djangoproject.com/en/dev/topics/testing/advanced/#tests-and-multiple-databases

这是我的默认路由器(django 1.7,但不太确定allow_relation和allow_migrate

class DefaultRouter(object):
"""
A router for the default db. add last in settings
"""

db_label = 'default'

def db_for_read(self, model, **hints):
return self.db_label

def db_for_write(self, model, **hints):
return self.db_label

def allow_relation(self, obj1, obj2, **hints):
return True

def allow_migrate(self, db, app_label, model=None, **hints):
return True

在settings.py中:

DATABASE_ROUTERS = ['otherapp.dbrouter.CustomDbRouter', 'project.dbrouter.DefaultRouter']

关于django - django测试框架是否支持多个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com