Как можно оправиться от неудачной миграции на юг? - PullRequest
2 голосов
/ 27 января 2011

Я использую Юг (версия 0.6, та, что упакована в Ubuntu Lucid Lynx) для управления миграцией базы данных в Django, и в настоящее время использую SQLite в качестве серверной части.Я столкнулся с ситуацией, когда я сгенерировал миграцию, чтобы добавить столбец с:

./manage.py startmigration myapp --auto added_new_column

..., который генерировал миграцию, которая выглядела разумной.Однако когда я применил миграцию с помощью:

./manage.py migrate myapp

, я получил ошибку, потому что добавляемый столбец отличался от NULL, но я не указал значение по умолчанию:

ValueError: You cannot add a null=False column without a default value.

Что делать, если миграция не проходит таким образом, и вы хотите вернуться и восстановить ее?(То, что я сделал на практике, а именно, чтобы удалить миграцию и создать новую, создало несколько дополнительных проблем.) Возможно, я упустил что-то очевидное в документации по этому поводу ...

1 Ответ

4 голосов
/ 27 января 2011

В этом случае миграция не удалась и не была записана в БД, поэтому вы можете безопасно удалить старый и создать заново.Также вы можете попробовать использовать более новую южную версию, я считаю, что они добавили проверку по умолчанию для полей NOT NULL при создании шага.

...