0
的變化我已經一個模型是這樣的:SQL的模型結構
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()
這意味着和自動增量mybase_ptr_id並在每個1類和class2的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。
- Reindex id下一個值。
- 添加field_a和field_b列。
- 匹配來自MyBase表的field_a,field_b值的對應值。
- 從mybase_ptr_id中刪除列。
我是否缺少任何有關此問題的重要問題?我想讀你的建議...
謝謝你們的詳細步驟。我在第四節遇到問題。無法使id成爲PK,因爲mybase_ptr_id已經是PK ...所以更好的重命名id列添加了一個新的secuence,從MyBase表中的最大id開始,並將與mybase關聯的約束 – juanefren