2014-09-01 2 views
65

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

Как я могу перейти от первоначальной миграции в Django 1.7?

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

python manage.py migrate <app> zero 

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

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

ответ

114

Вы также можете сделать то же самое с Django 1.7.

python manage.py migrate <app> zero 

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

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

+5

Является ли это документально в любом месте? Документация django на миграцию сильно отсутствует ... – rnevius

+2

Doc можно найти на странице документации django-admin и manage.py: https://docs.djangoproject.com/en/1.7/ref/django-admin/#django -admin-migrate –

+0

@n__o Спасибо. Обновленный ответ. – ChillarAnand

12

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

python manage.py migrate <app> 0002 

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

+1

Заданный вопрос о переносе назад из * начальной * миграции, а использование '0000' не работает – guival

+0

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

+0

удаление всей БД для одной таблицы немного переборщило – guival

Смежные вопросы