Пометить определенные миграции Django как фальшивые миграции во время настройки тестовой БД

У меня есть несколько миграций базы данных, некоторые структурные миграции, некоторые миграции данных

eg.

0001_initial.py
0002_import_data.py
0003_add_field.py
0004_import_more_data.py

Я хотел бы пропустить эти миграции данных (0002 и 0004), поскольку я не хочу тратить усилия на подделку источника для этих миграций данных, но при этом запускать 0001 и 0003 при выполнении python manage.py test

Возможно ли это?

Вы можете отредактировать файлы миграции данных и условно установить operations в пустой список или удалить только те операции, которые вы хотите пропустить. Затем вам нужно определить, когда вы работаете под тестом, это можно сделать с помощью отдельного файла настроек или установки переменной окружения

class Migration(migrations.Migration):

    dependencies = [
        ('app', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(import_function),
    ]

    if settings.TEST: # if os.environ('SKIP_DATA_MIGRATIONS') == 'true':
        operations = []
Вернуться на верх