django south - unique=True, но "дать значение по умолчанию для существующих строк"?

Я создал индексное поле

channel_indexid = PositiveIntegerField(db_index=True, unique=True)

Если я пытаюсь мигрировать, юг просит меня ввести значение по умолчанию для существующих строк.

1. Quit now, and add a default...
2. Specify a one-off value.. 

Но, channel_indexid является уникальным, как я могу дать одно значение по умолчанию для всех строк? есть ли решение для этого. это действительно раздражает

1 ответ

Решение

Поскольку вы модифицируете модель, South запросит у вас значение по умолчанию для существующих строк, так как ваше новое поле по умолчанию null=False, Вы можете избежать установки значения по умолчанию, установив null=True, blank=True,

Если вы не хотите, чтобы оно было обнуляемым, и вы все еще хотите добавить это поле как обнуляемое, то вам нужно удалить таблицу и создать ее заново с вашим новым полем.

Юг по умолчанию дает новые столбцы null значение, но так как по умолчанию поля null=False затем Юг попросит вас указать значение для нового поля. Юг не дает пустых строк или 0 в качестве значений по умолчанию для строковых или целочисленных полей, вы должны указать Югу значение по умолчанию, если поле не может иметь значение NULL, и если оно имеет значение NULL, оно даст значение по умолчанию: null,

Другие вопросы по тегам