Django 2.0 - Как бороться с тестированием только на одной базе данных, когда у нас их несколько? - PullRequest
0 голосов
/ 26 августа 2018

Прежде всего, я новичок в задании вопросов здесь, так что терпите меня, если я не сделаю это идеально :) Вот так ...

Я настраиваю API Django2.0это будет иметь дело со статистикой.У него есть собственная база данных «по умолчанию», чтобы писать вещи, но мне понадобятся несколько других баз данных, которые будут доступны только для чтения.Вот как выглядят настройки на данный момент.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dev_gpws',
        'USER': 'dev_gpws_user',
        'PASSWORD': 'gpws_pwd',
        'HOST': 'localhost',
        'PORT': '5432',
    },
    'other_db': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'other_db_name',
        'USER': 'other_db_user',
        'PASSWORD': 'other_db_pwd',
        'HOST': 'other_db_host',
        'PORT': '5432',
    },
}

Когда Fabric развертывает проект в стадии подготовки, частью процедуры является ./manage.py test, что приводит к следующей ошибке:

(gpws) dev_gpws@af968cdb7653:~/gpws/project$ ./manage.py test
Creating test database for alias 'default'...
Creating test database for alias 'other_db'...
Got an error creating the test database: ERREUR:  permission denied to create database

Это имеет смысл, учитывая, что other_db_user - пользователь только для чтения, поэтому я хотел бы отключить тестирование django для этой базы данных.Есть ли чистый способ сделать это?Кроме того, это приложение статистики будет связано с несколькими базами данных позже, поэтому я бы предпочел использовать решение, которое легко масштабируется.

Заранее благодарен за любой совет, который вы мне предоставите!

edit: просто чтобы уточнить, мне нужно получить доступ к базам данных read_only при тестировании, но django не должен создавать test_database, он должен использовать промежуточные базы данных, которые ему даны:)

...