Django South - превращение поля NULL = True в NULL = FALSE - PullRequest
6 голосов
/ 21 января 2011

Мой вопрос: как лучше всего превратить поле null=True в поле null=False, используя Django South?В частности, я работаю с ForeignKey.

Ответы [ 2 ]

6 голосов
/ 21 января 2011

Сначала необходимо написать миграцию данных: http://south.aeracode.org/docs/tutorial/part3.html, а затем создать схему миграции.

3 голосов
/ 21 января 2011

Если вы хотите превратить обнуляемый ForeignKey в ненулевой, то это может быть проблематично, если у вас есть строки с NULL для этого поля (столбца).В таком случае вам нужно либо удалить, либо исправить их - возможно, с помощью пользовательской миграции данных, например, diegueus9, упомянутой в другом ответе.

Но если в этом столбце нет строк со значением NULL, например, потому что вы указали значение null = True только в том случае, если оно понадобится вам в будущем, тогда вы сможете выполнить простой автоматическиймиграция схемы:

$ ./manage.py schemamigration myapp remove_null_from_fkey --auto
(...)
$ ./manage.py migrate myapp
...