我正在做一些系统,我的桌面设计是这样的:
Table A:
- ID
- ForeignKey(C)
Table B:
- ID
- ForeignKey(A)
Table C:
- ID
由于一些需求变化,我需要将ForeignKey(C)从A移动到B,所以它是这样的:
Table A:
- ID
Table B:
- ID
- ForeignKey(A)
- ForeignKey(C)
-Table C:
- ID
架构迁移很简单。但是上次我已经在表A中有一些现有的FK数据。我不能马上删除它。我需要将这个FK迁移到表B.B的结构和它的内部数据是不同的。当我将ForeignKey(C)添加到B的模型时,South要求我提供默认值,因为我没有提供任何默认值,并且它不允许NULL。选择是退出schemamigration并手动添加默认值或提供一次性值。
我的问题是,如何使用South?添加从表A中的现有数据导入的默认/ 1时间值?我正在寻找这个类似的问题,但没有运气:(
感谢。
答案 0 :(得分:6)
进行此类迁移时,我总是创建3次迁移:
这样我可以使用来自南方的auto schemamigration进行第一次和第三次迁移,只需编写一些简单的转换代码。这与南方教程中的this example类似。