Django South:从另一个选项卡迁移FK

2024-05-01 08:32:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一些系统,我的桌子设计是这样的:

Table A:
   - ID
   - ForeignKey(C)

Table B:
   - ID
   - ForeignKey(A)

Table C:
   - ID

由于一些需求变化,我需要将ForeignKey(C)从A移到B,所以如下所示:

^{pr2}$

模式迁移很容易。但是上一次我已经在表A中有一些FK数据,我不能马上删除。我需要将这个FK迁移到表B中。B的结构和它内部的数据是不同的。当我将ForeignKey(C)添加到B的模型中时,South要求我提供一个默认值,因为我没有提供任何默认值,它不允许NULL。选择是退出schemamigration并手动添加默认值或提供一次性值。在

我的问题是,如何使用South添加从表A中现有数据导入的默认/1次值?。我一直在寻找类似的问题,但没有运气:(

谢谢。在


Tags: 数据模型id系统table模式手动结构
1条回答
网友
1楼 · 发布于 2024-05-01 08:32:36

在进行这种类型的迁移时,我总是创建3个迁移:

  1. 创建新字段
  2. (数据迁移)将数据从旧字段复制到新字段(可能通过转换)
  3. 删除旧字段

这样,我就可以使用south的auto schemamigration进行第一次和第三次迁移,只需编写一些简单的转换代码。这类似于south教程中的this example。在

相关问题 更多 >