Django 1.7 ввів міграцію баз даних .
Під час виконання одиничних тестів у Django 1.7 він змушує мігрувати , що займає тривалий час. Тому я хотів би пропустити міграцію джанго та створити базу даних у остаточному стані.
Я знаю, що ігнорування міграцій може бути поганою практикою, оскільки ця частина коду не буде перевірена. Але це не так: я виконую повну міграцію на тестовому сервері CI (jenkins). Я хочу лише пропустити міграцію в своїх місцевих тестах, де швидкість має значення.
Деякий контекст:
До Django 1.6 під час використання South я використовував налаштування SOUTH_TESTS_MIGRATE :
За замовчуванням команда syncdb Саута також застосовуватиме міграції, якщо вона виконується в неінтерактивному режимі, що включає під час запуску тестів - вона буде виконувати кожну міграцію щоразу, коли ви запускаєте тести.
Якщо ви хочете, щоб тестовий бігун використовував syncdb замість міграції - наприклад, якщо ваші міграції тривають занадто довго, щоб застосувати - просто встановіть SOUTH_TESTS_MIGRATE = Неправильно в налаштуваннях.py.
Однак syncdb більше не існує, тепер він переміщується .
І з Django 1.8 я буду використовувати параметр --keepdb :
Параметр --keepdb може використовуватися для збереження тестової бази даних між тестовими запусками. Це має перевагу пропускати як створювати, так і руйнувати дії, що значно скорочує час на виконання тестів, особливо у великих тестових наборах. Якщо тестової бази даних не існує, вона буде створена під час першого запуску та збережена для кожного наступного запуску. Будь-які неприкладені міграції також будуть застосовані до тестової бази даних перед запуском тестового набору.
Тож це питання обмежується Django 1.7.
django-test-without-migrations
Пакет був дуже зручно для мене, ви можете захотіти змінити прийнятий відповідь на stackoverflow.com/a/28993456/200224