我的问题是,使用Django South将null=True
字段转换为null=False
字段的最佳做法是什么。具体来说,我正在使用ForeignKey
。
答案 0 :(得分:6)
您应首先编写数据迁移:http://south.aeracode.org/docs/tutorial/part3.html 然后进行schemamigration。
答案 1 :(得分:3)
如果要将可为空的ForeignKey转换为不可为空的,那么如果该字段(列)的任何行为NULL,则可能会出现问题。在这种情况下,您需要删除或修复它们 - 可能使用自定义数据迁移,如其他答案中提到的diegueus9
。
但是如果你在该列中没有任何带NULL的行,例如因为只有在将来可能需要它时才设置null = True,那么你应该能够进行简单的自动模式迁移:
$ ./manage.py schemamigration myapp remove_null_from_fkey --auto
(...)
$ ./manage.py migrate myapp