Django South - 将 null=True 字段转换为 null=False 字段
我想问的是,在使用Django South的时候,怎样才能把一个设置为null=True
的字段改成null=False
的字段,最好的做法是什么?具体来说,我是在处理一个ForeignKey
字段。
2 个回答
3
如果你想把可为空的外键变成不可为空的外键,但如果你在这个字段(列)中有任何行是NULL,那就会有点麻烦。在这种情况下,你需要删除这些行或者修复它们——可能需要进行一些自定义的数据迁移,就像diegueus9
在其他回答中提到的那样。
不过,如果你在这个列中没有任何NULL的行,比如说你之前把null=True设置成可为空只是为了将来可能用到,那么你就可以简单地进行一次自动的数据库结构迁移:
$ ./manage.py schemamigration myapp remove_null_from_fkey --auto
(...)
$ ./manage.py migrate myapp
6
你应该先进行数据迁移,具体可以参考这个链接:http://south.aeracode.org/docs/tutorial/part3.html,然后再进行模式迁移。