如何设置表空间以在oracle模式中运行pytest django?

时间:2019-05-09 21:27:06

标签: django oracle schema pytest

我正在使用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?

任何帮助将不胜感激。谢谢!

0 个答案:

没有答案