【发布时间】:2016-09-08 10:11:14
【问题描述】:
在我的项目中,我使用了多个数据库,准确地说是 3 个。
一个默认数据库和两个参考数据库(另一个主机),由我们的数据团队提供支持和更新。我正在使用来自 2 个外部数据库的 4 个表,这些表使用 ./manage.py inspectdb 检查。它们设置为managed=False
一切正常,我的应用程序按预期和计划工作。
现在有趣的开始了,我需要编写测试。我不想删除我的数据库。 我需要从他们那里阅读,我不想创建固定装置。 每次我尝试使用 pytest 或自定义 django 测试时,它都会尝试删除我的数据库、重新创建、运行迁移等。
我怎样才能保存它?在 pytest 或 django 测试中?我尝试过 --re-usedb 和其他几个参数。
这是我的数据库设置(可以上传的部分)
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,
}
}
【问题讨论】:
标签: python django database postgresql pytest