Django 1.7 представил миграции данных.
При выполнении модульных тестов в Django 1.7 он перенаправляет миграцию, что занимает много времени. Поэтому я хотел бы пропустить миграцию django и создать базу данных в конечном состоянии.
Я знаю, что игнорирование миграции может быть плохой практикой, так как эта часть кода не будет проверена. Но это не так: я запускаю полные миграции на тестовом сервере CI (jenkins). Я только хочу пропустить миграции в моих локальных тестах, где скорость имеет значение.
В некотором контексте:
До Django 1.6 при использовании юга я использовал параметр SOUTH_TESTS_MIGRATE:
По умолчанию команда Souths syncdb также применяет миграцию, если ее запуск выполняется в неинтерактивном режиме, который включает в себя при выполнении тестов - он будет выполнять каждую миграцию каждый раз, когда вы запускаете свои тесты.
Если вы хотите, чтобы тестовый бегун использовал syncdb вместо переноса - например, если ваши миграции слишком долго применяются - просто установите SOUTH_TESTS_MIGRATE = False в settings.py.
Однако syncdb больше не существует, теперь он переносится.
И из Django 1.8 я буду использовать параметр --keepdb:
Параметр -keepdb может использоваться для сохранения тестовой базы данных между тестовыми запусками. Это имеет то преимущество, что пропускает действия create и destroy, что значительно сокращает время запуска тестов, особенно в большом наборе тестов. Если тестовая база данных не существует, она будет создана при первом запуске и затем сохраняется для каждого последующего запуска. Любые непримененные миграции также будут применены к тестовой базе данных перед запуском набора тестов.
Итак, этот вопрос ограничен Django 1.7.