我已经有这样的模型:
class MyBase(models.Model):
field_a = models.IngetField()
field_b = models.IngetField()
class Class1(MyBase):
field_c = models.IngetField()
class Class2(MyBase):
field_c = models.IngetField()
这意味着在每个 Class1 和 Class2 上自动增加 mybase_ptr_id 和 field_c 字段。
由于设计原因,我们希望将架构更改为:
class Class1(models.Model):
field_a = models.IngetField()
field_b = models.IngetField()
field_c = models.IngetField()
class Class2(models.Model):
field_a = models.IngetField()
field_b = models.IngetField()
field_c = models.IngetField()
相反,这需要一个自动增量 id 和字段 field_a、field_b、field_c(我猜是最常见的方法)。
是否有既定或推荐的方式来修改表的结构?我正在使用postgresql。
我想每个表的基本方法:
- 创建一个新的 id 列。
- 填写我在 mybase_ptr_id 上已有的相同信息。
- 将 id 转换为串行 NOT NULL PRIMARY KEY。
- 重新索引 id 下一个值。
- 添加 field_a 和 field_b 列。
- 匹配来自 MyBase 表的 field_a、field_b 值的对应项。
- 从 mybase_ptr_id 中删除列。
我是否错过了有关此的任何重要问题?我想看看你的推荐...