我正在使用django
作为后端来研究SQLite3
。然后,我们必须将其全部迁移到oracle
DB中。我在尝试在架构上运行pytest时遇到很多问题。我怎样才能做到这一点?到目前为止,这是我尝试过的:
在设置中添加了每个架构:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': service_name,
'USER': username,
'PASSWORD': password,
'HOST': hostname,
'PORT': port,
'TEST': {
'TBLSPACE': 'name_tablespace'
},
'schema2': {
'ENGINE': 'django.db.backends.oracle',
'NAME': service_name,
'USER': username,
'PASSWORD': password,
'HOST': hostname,
'PORT': port,
'TEST': {
'TBLSPACE': 'name_tablespace'
},
'schema3': {
'ENGINE': 'django.db.backends.oracle',
'NAME': service_name,
'USER': username,
'PASSWORD': password,
'HOST': hostname,
'PORT': port,
'TEST': {
'TBLSPACE': 'name_tablespace'
}
},
然后我在测试文件上定义了一个固定装置,以将架构用作测试数据库:
@pytest.fixture(scope='session')
def django_db_setup():
settings.DATABASES['default'] = {
'ENGINE': 'django.db.backends.oracle',
'NAME': service_name,
'USER': username,
'PASSWORD': password,
'HOST': hostname,
'PORT': port,
'DEFAULT_TABLESPACE': 'tablespace_name'
},
当我运行pytest时,测试通过了,但最后它刷新了数据库。如何指向tablespace
而不是schema_db进行测试。我不想丢失用户数据库中的任何数据。
我对此并不陌生,请告诉我这是否根本不是一个好习惯。如果没有,如何使用oracle模式测试django?
任何帮助将不胜感激。谢谢!