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

4
我有一个已经存在的数据库 "A",其中有数据,它是我要集成的不同项目的一部分。我使用多数据库 Django 支持,并将我需要持久化的东西存储在 Django 模型的数据库 "B" 中。
现在我想运行测试,这将为我创建两个测试数据库。问题是测试数据库 "A" 没有表或数据。
有没有办法避免为只读非生产数据库 "A" 创建测试数据库,直接使用 "A"?
1个回答

2
如果我正确地阅读了 django.test.simple.DjangoTestSuiteRunner.setup_databases,你可以通过为数据库定义一个'TEST_MIRROR'设置来避免创建测试数据库。
该选项旨在用于测试主/从配置,但如果将镜像设置为与正在配置该选项的数据库相同的数据库,则可以实现预期的效果。
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”上运行。

我不知道在更新版本中是否已经修复(这里是Django 1.4.8),但测试运行程序仍然会尝试刷新A,从而抹掉所有数据。 - Izkata

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接