【问题标题】:Django avoid creating testing database for exsting oneDjango 避免为现有数据库创建测试数据库
【发布时间】:2013-03-25 14:35:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: django


    【解决方案1】:

    如果我正确阅读了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”上运行。

    【讨论】:

    • 我不知道它是否已在较新的版本中得到修复(此处为 Django 1.4.8),但测试运行器仍然尝试刷新 A,清除所有数据。
    猜你喜欢
    • 2015-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2020-11-17
    • 2015-01-28
    • 2013-08-05
    • 1970-01-01
    • 2022-01-16
    相关资源
    最近更新 更多