我有一个已加载数据的现有数据库“A”,它是我正在集成的不同项目的一部分.我正在使用多数据库Django支持并存储我需要持久存储在我的数据库“B”中的东西,这是Django建模的.
现在我想运行测试,这会创建两个测试数据库.问题是测试数据库“A”没有表或数据.
有没有办法避免为“A”(这是一个只读的非生产数据库)创建测试数据库并直接使用“A”?
最佳答案 如果我正确读取
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”上运行.