2012-01-13 118 views
12

我有一個Django項目,作爲遺留數據庫的導入而開始。正因爲如此,有一個複合主鍵的模型。只要我只使用遺留數據,這就工作了,但現在我想添加新的數據,並且我創建的表單告訴我,我試圖插入重複數據,大概是因爲它只查看其中一個字段首要的關鍵。使用Django South將Autoincrement字段添加到現有模型?

現在我想改變模型使用自動增量主鍵,就像Django自動添加的那樣。我嘗試從字段中刪除主鍵屬性,並將它們放入Meta內部類中的unique_together中。當我與South運行schemamigration時,它希望按預期添加一個id字段,但它要求提供默認值。

如何指定南應該以某種對自動增量字段合理的方式分配唯一鍵? (即將序列[1 ... n]分配給某些記錄的任意順序)

如果這是不可能的,還有另一種方法可以完成同樣的事情,最好是使用Django和South?

回答

5

我解決了,需要我一個解決方法,這樣做的問題:

我從原來的表中的數據複製到一個臨時表中的SQL與INSERT INTO... SELECT...。然後,我刪除了原始表並使用autoincrement字段重新創建它。然後我將數據複製回新表中,自動增加值由INSERT命令自動添加。最後,我執行了一次南方遷徙的虛假行爲,以使南方的表格與新方案保持一致。

相關問題