Django和pytest,多个数据库,保留删除



在我的项目中,我使用多个数据库,准确地说是3。一个默认数据库和两个参考数据库(另一个主机),由我们的数据团队提供支持和更新。我使用了来自2个外部数据库的4个表,这些表是用./manage.py inspectdb检查的。设置为managed=False一切都很好,我的应用程序工作如预期和计划。

现在好戏开始了,我需要编写测试。我不想删除我的数据库。我需要从它们中读取,我不想创建fixture。每次当我尝试使用pytest或自定义django测试时,它都试图删除我的数据库,重新创建,运行迁移等等。

我怎样才能保留它?无论是在pytest还是django测试?我试过——reusedb和其他几个参数。

这是我的数据库设置(可以上传的部分)

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'default_db',
        'USER': 'default_usr',
        'PASSWORD': 'default_pass',
        'HOST': 'postgres.somehost.com',
        'SUPPORTS_TRANSACTIONS': True,
    },
    'geolocations': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'OPTIONS': {
            'options': '-c search_path=some_schema'
        },
        'NAME': 'geo_name',
        'USER': 'geo_user',
        'PASSWORD': 'geo_password',
        'HOST': 'some-host.domain.com',
        'SUPPORTS_TRANSACTIONS': True,
    },
    'eoc': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'OPTIONS': {
            'options': '-c search_path=another_schema'
        },
        'NAME': 'eco_name',
        'USER': 'eoc_user',
        'PASSWORD': 'eoc_',
        'HOST': 'some-another-host.domain.com',
        'SUPPORTS_TRANSACTIONS': True,
    }
}

所以在pytest.ini中,你应该能够添加一个'——no-migrations'标志,以确保不进行迁移。使用pytest标记pytest文档应该使您能够访问数据库。

你需要的标记是:

pytestmark = pytest.mark.django_db

相关内容

  • 没有找到相关文章

最新更新