Как настроить табличное пространство для запуска pytest django в схеме Oracle? - PullRequest
0 голосов
/ 10 мая 2019

Я работал над 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. Я не хочу терять какие-либо данные в БД от пользователей.

Я новичок в этом, Дайте мне знать, если это вообще не очень хорошая практика. Если нет, то как я могу проверить django с помощью схем оракула?

Любая помощь будет признательна. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...