【发布时间】:2014-11-07 08:56:49
【问题描述】:
我们使用 django-polymorphic 的多态模型。
最近我们改变了这些模型的层次结构,从这里开始:
class A(PolymorphicModel):
# foo
class B(A):
# bar
class C(A):
# baz
到这里:
class A(PolymorphicModel):
# foo
class B(A):
# bar
class C(B): # C became a subclass of B.
# baz
B 中的所有字段都有一个默认值,因此理论上,有一种平滑的方式可以将现有数据迁移到新架构。它需要在表B中创建行,并重新占用表C的基类列。
但是,South 要求 C.b_id 使用一次性值(C.a_id 也需要一个一次性值,用于向后迁移)。
我意识到 South 不知道 django-polymorphic。此外,当我想在数据迁移中“只在 B 中添加一行”时,django-polymorphic 也会出现问题。
在这种情况下迁移数据最优雅的方法是什么?
【问题讨论】:
标签: python django migration django-south polymorphism