У меня локально запущен проект Django 3.0.8, подключенный к локальной базе данных PostgreSQL (postgres:///myapp
). Когда я запускаю python manage.py test
, мои модульные тесты работают нормально; автоматически создается тестовая база данных с именем test_myapp
, и к ней правильно осуществляется доступ.
Однако, когда я запускаю python manage.py test --parallel 8
, тест не проходит. Я вижу, что 8 клонированных баз данных сгенерированы правильно (test_myapp_1
, test_myapp_2
, ..., test_myapp_8
), но получаю такие ошибки:
psycopg2.OperationalError: FATAL: database "myapp_3" does not exist
Похоже, что для параллельных тестов некорректный доступ к базам данных (попытка доступа к базе данных myapp_N
, а не test_myapp_N
). Я пытаюсь выяснить, есть ли проблемы в моей локальной конфигурации, но это все, что у меня есть в моей базовой конфигурации:
DATABASES = {
'default': env.db('DATABASE_URL', default='postgres:///myapp'),
}
DATABASES['default']['ATOMIC_REQUESTS'] = True
Почему мои параллельные процессы тестирования не получают правильного доступа к своим соответствующим клонированным тестовым базам данных?