Как вернуться к исходной миграции в Django 1.7?


117

Я создал новое приложение с некоторыми моделями и теперь заметил, что некоторые модели плохо продуманы. Поскольку я не передал код, разумно было бы перенести базу данных в последнее хорошее состояние и повторить миграцию с лучшими моделями. В этом случае последним хорошим состоянием является база данных, в которой новое приложение не существует.

Как вернуться к исходной миграции в Django 1.7?

В Southодном можно было сделать:

python manage.py migrate <app> zero

Что бы очистить <app>историю миграции и удалить все таблицы <app>.

Как это сделать с миграцией Django 1.7?

Ответы:


197

То же самое можно сделать и с Django 1.7+:

python manage.py migrate <app> zero

Это очищает <app>историю миграции и удаляет все таблицы<app>

См. Django docs для получения дополнительной информации.


7
Это где-нибудь задокументировано? Документация django по миграциям сильно отсутствует ...
rnevius

2
Документ можно найти на странице документации django-admin и manage.py: docs.djangoproject.com/en/1.7/ref/django-admin/…
n__o

@Нет, спасибо. Обновленный ответ.
ChillarAnand

1
Как бы вы справились с ошибкой IntegrityError: NOT NULL?
wasabigeek

2
Просто попробовал это на Django 1.9, и он тоже работал нормально. Спасибо
Dário

9

вы также можете использовать номер версии:

python manage.py migrate <app> 0002

Источник: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate



я вижу, возможно, я неправильно понял вопрос (хотя он не очень хорошо написан ИМХО). почему бы вам просто не сбросить БД? ну ладно
jsh

2
удаление всей БД для одного стола - это немного перебор
guival
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.