我正在使用south
来管理迁移,而且我已经到了一个角落。基本上我有以下设置:
App1的:
class A(models.Model):
# bunch of attributes
App2的:
class B(models.Models):
instance_a = models.OneToOneField(A, null=True, blank=True,
editable=False)
现在,我想从此走向:
App1的:
class A(models.Model):
instance_b = models.ForeignKey(B, null=True, blank=True)
App2的:
class B(models.Models):
# other attributes
我的主要问题是我无法丢失数据。因此,基本上在迁移结束时,先前映射到对象B的所有对象A应保持该映射。例如,如果ID为7的对象A映射到ID为8的对象B,则应在此过程结束时保留此映射。
我尝试了一些与临时占位符和数据迁移混合的模式迁移。但是我最终总是在同一个地方,这是在执行数据迁移时我不再拥有先前的关系以便访问正确的属性。例如,B.instance_a不再可用。
我希望你对两件事有所了解:
由于