2013-01-10 134 views
0

我只是自己測試它。我有Django模型,數據庫中已經有模型的實例。修改Django模型

然後我向模型中添加了一個虛擬整數字段並運行manage.py syncdb。檢查數據庫,並沒有發生任何事情表。我沒有看到額外的域被添加。

這是預期的行爲?修改模型的正確方法是什麼?以及如何改變數據庫中已有的數據?

+3

你,如果你想改變使用遷移工具,如'South'你模型將被反映在數據庫中。否則,刪除數據庫中的表並重新運行'syncdb'。 –

回答

1

Django不會改變已經存在的表格,他們甚至在文檔中這樣說。這是因爲django不能保證不會丟失任何信息。

如果您想更改現有表格,您有兩個選項。要麼刪除它們並再次運行syncdb,但如果要保留它,則需要以某種方式存儲數據。其他選項是使用遷移工具爲您完成此操作。 Django可以向您顯示新數據庫模式的SQL,並且可以將它們與當前版本的數據庫相比較以創建更新腳本。

如果是小改動,你甚至可以手動更新你的數據庫,並且你不想使用遷移工具,儘管我會推薦使用它。