Ошибка теста Django: django.db.utils.ProgrammingError: отношение "auth_group" не существует
У меня есть приложение django, которое в последнее время не тестировалось. Мне нужно выполнить пользовательскую команду. Я написал тест для нее и запустил все миграции. Я смог успешно выполнить все миграции. Когда я попытался запустить тест, возникла следующая ошибка
Я попытался запустить migrate auth отдельно. Не было никаких миграций для применения
Operations to perform:
Apply all migrations: auth
Running migrations:
No migrations to apply.
Следующее django-приложение помогает запускать тесты django, не затрагивая конфликты миграции.
Install 'django-test-without-migrations'
pip install django-test-without-migrations
добавьте его в INSTALLED_APPS
INSTALLED_APPS = (
# ...
'test_without_migrations',
)
Тогда бегите,
python manage.py test --nomigrations
--nomigrations гарантирует, что ваши тесты не будут провалены из-за проблем с миграцией.
Ссылка: https://pypi.org/project/django-test-without-migrations/
python manage.py makemigrations auth
then
python manage.py makemigrations
Как я уже сказал в своем вопросе, я смог успешно запустить миграции и смог запустить свое приложение django. Но когда я попытался запустить тесты, возникла вышеупомянутая ошибка.
Я решил проблему, зеркалируя свою базу данных путем редактирования settings.py
или (local_settings.py
).
Теперь я могу запустить тест без каких-либо проблем с миграцией.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'USER': 'mydatabaseuser',
'NAME': 'mydatabase',
'TEST': {
'MIRROR': 'default',
},
},
}