Django避免为现有数据库创建测试数据库

时间:2013-03-25 14:35:13

标签: django

我有一个已加载数据的现有数据库“ A ”,这是我正在集成的另一个项目的一部分。我正在使用多数据库Django支持并存储我需要保存在我的数据库“ B ”中的东西,这是Django建模的。

现在我想运行测试,这会创建两个测试数据库。问题是测试数据库“A”没有表或数据。

有没有办法避免为“ A ”(这是一个只读的非生产数据库)创建测试数据库并直接使用“ A ”?

1 个答案:

答案 0 :(得分:2)

如果我正确阅读django.test.simple.DjangoTestSuiteRunner.setup_databases,您可以通过为数据库定义'TEST_MIRROR'设置来避免创建测试数据库。

该选项旨在用于testing master/slave configuration,但如果将镜像设置为与配置选项的镜像相同的数据库,则可以达到预期效果:

DATABASES = { 
    'A': {
        'ENGINE': ..., # standard configuration goes here
        'TEST_MIRROR': 'A',
    }, 
    'B': {
        'ENGINE': ..., # no TEST_MIRROR, a test database will be created for B
    } 
} 

不会为“ A ”创建测试数据库,而是将其替换为TEST_MIRROR,这也是“ A ”,因此测试将按预期在“ A ”和“ test_B ”上运行。