【发布时间】:2012-07-13 13:06:31
【问题描述】:
我正在使用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 不再可用。
我想听听你对两件事的看法:
- 首先,仅使用南迁移是否可行。
- 其次,我该如何进行。
谢谢
【问题讨论】:
标签: python django django-models django-south