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

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

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

В South можно было:

python manage.py migrate <app> zero

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

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


person Seppo Erviälä    schedule 01.09.2014    source источник


Ответы (2)


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

python manage.py migrate <app> zero

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

Дополнительную информацию см. В django docs.

person ChillarAnand    schedule 01.09.2014
comment
Это где-нибудь задокументировано? Документация django по миграциям сильно отсутствует ... - person rnevius; 25.03.2015
comment
Документ можно найти на странице документации django-admin и manage.py: docs.djangoproject.com/en/1.7/ref/django-admin/ - person n__o; 31.07.2015
comment
@нет, спасибо. Обновленный ответ. - person ChillarAnand; 31.07.2015
comment
Как бы вы справились с IntegrityError: NOT NULL ограничение не удалось? - person wasabigeek; 26.08.2015
comment
он дает Доступ запрещен - person Null Pointer; 26.04.2016
comment
Просто попробовал это на Django 1.9, и он тоже работал нормально. Спасибо - person Dário; 22.07.2016
comment
Это действительно удалило все таблицы и историю миграции, но не удалило мой 0001_initial.py файл миграции. Не могли бы вы подтвердить, следует ли мне удалить его вручную или нет? - person sc28; 20.02.2019

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

python manage.py migrate <app> 0002

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

person jsh    schedule 28.07.2015
comment
Заданный вопрос касается возврата из начальной миграции, а использование 0000 не работает. - person guival; 22.12.2017
comment
я вижу, возможно, я неправильно понял вопрос (хотя он не очень хорошо написан ИМХО). почему бы вам просто не сбросить БД? Ну что ж - person jsh; 23.02.2018
comment
удаление всей БД для одной таблицы - это немного перебор - person guival; 23.02.2018