2012-02-02 60 views
1

我一直在Django中修改模型。然而,在我這樣做後,我必須進入數據庫,手動刪除表,然後manage.py syncdb。我嘗試了manage.py reset <<app_name>>,但它沒有下降,然後用新字段重新安裝模型。什麼是正確的方法來做到這一點或是進入數據庫,刪除,然後syncdb的最佳方式?在Django中更新模型的正確方法

+1

[Django工作流在頻繁修改模型時可能有重複?](http://stackoverflow.com/questions/497654/django-workflow-when-modifying-models-frequently) – Marcin 2012-02-02 22:15:11

+3

使用南:south.aeracode.org/ – Marcin 2012-02-02 22:15:26

+0

@Marcin謝謝你,我正在尋找 – Alexis 2012-02-02 22:47:17

回答

2

您所描述的行爲是明確的docs提到:

執行syncdb只會創造模式尚未被安裝 表。它將永遠不會發出ALTER TABLE語句,以便在安裝後匹配對模型類所做的更改 。對模型類和 數據庫模式的更改通常涉及某種形式的模糊性,並且在那些案例中,Django將不得不猜測正確的更改。 在此過程中可能會丟失關鍵數據。

你是什麼之後是數據庫遷移的工具和is a large problem mostly solved ;-)

所以,是的,作爲馬辛說,你正在尋找South。 或者,你可以嘗試Nashvegas和小的變化,即使sql_diff這是django-extensions的一部分是一個可行的選擇。