Как вернуться к исходной миграции в 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 для получения дополнительной информации.

ChillarAnand
источник
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
источник
5
0000
Заданный
я вижу, возможно, я неправильно понял вопрос (хотя он не очень хорошо написан ИМХО). почему бы вам просто не сбросить БД? ну ладно
jsh
2
удаление всей БД для одного стола - это немного перебор
guival