Моему приложению django нужны данные для правильной работы, поэтому при определенной миграции я загружал данные, используя рекомендуемый метод, почти во всех ответах на переполнение стека:
from django.core.management import call_command
def load_fixture(apps, schema_editor):
call_command('loaddata', 'fixture_name', app_label='my_app')
class Migration(migrations.Migration):
...
operations = [
migrations.RunPython(load_fixture),
]
В следующей миграции я удалил поле и добавил другое поле. Все идет нормально.
Теперь я хочу протестировать свое приложение, но когда создается тестовая база данных, приведенная выше команда call_command не работает, потому что в фикстурах не указаны значения для поля, созданного при следующей миграции. Я подозреваю, что это связано с тем, что call_command
загружает объекты не в тестовую базу данных, а в settings.DATABASES['default']
.
Как мне загружать фикстуры при миграции, чтобы я мог создавать тестовые базы данных?