django не может удалить тестовую базу данных через pgbouncer - PullRequest
6 голосов
/ 08 ноября 2011

Я использую pgbouncer с Django.Я добавил базу данных test_foo в ее конфигурацию, чтобы иметь возможность запускать тесты, потому что, очевидно, Django не может использовать другой порт для тестовой базы данных.Теперь тестовый запуск, но в конце, когда Django пытается сбросить тестовую БД, я получаю

django.db.utils.DatabaseError: database "test_foo" is being accessed by other users
DETAIL:  There are 1 other session(s) using the database.

Я полагаю, это вызвано открытым соединением, сохраненным pgbouncer.Что я могу сделать?

1 Ответ

6 голосов
/ 19 ноября 2011

Это не идеальное решение, но оно делает свое дело.Вы можете заставить Django использовать разные настройки базы данных при запуске модульных тестов, добавив их в настройки.py:

if 'test' in sys.argv or 'test_coverage' in sys.argv:    
    # Use 5432 as db port (avoid going through pgbouncer, can't delete test DB).
    DATABASES = {
        'default': {
            'ENGINE': 'django.contrib.gis.db.backends.postgis',
            'NAME': 'xxx',
            'USER': 'xxx',
            'PASSWORD': 'xxx',
            'HOST': '',
            'PORT': '5432'
        },
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...