我们使用django多态模型。在
最近,我们更改了这些模型的层次结构:
class A(PolymorphicModel):
# foo
class B(A):
# bar
class C(A):
# baz
为此:
^{pr2}$B中的所有字段都有一个默认值,因此理论上,有一种平滑的方法可以将现有数据迁移到新模式中。它需要在表B中创建行,并重新调整表C的基类列
但是,South要求C.b_id有一个一次性的值(对于向后迁移,C.a_id也需要一个值)。在
我知道南方不知道django多态性。另外,当我想在数据迁移中“只在B中添加一行”时,django polymorphic也会出现这种情况。在
在这种情况下,迁移数据最优雅的方法是什么?在
我找到的最佳解决方案是:
数据迁移:将所有数据从C复制到C\U temp。在
对于C中的每个对象,通过复制所有字段(包括id)来创建一个新的C_temp。为B中的字段提供默认值
这将在B中添加新行并将其与A中的现有行连接。
架构迁移:delete C.
相关问题 更多 >
编程相关推荐