2009-05-23 19 views
2

我試圖讓南工作 - 它在我的PC上正常工作,但我很努力地將它部署在我的虛擬主機上。Django沒有在settings.py中接受INSTALLED_APPS的更改

現在看來,我對INSTALLED_APPS添加/刪除項目所做的任何更改都沒有被syncdbdiffsettings拾取。我已將south添加到我的INSTALLED_APPS列表中,但運行syncdb時所需的表格未創建。如果我更改其他設置,它們會被拾取,但似乎是INSTALLED_APPS不起作用。

如果我從殼我manage.py shell得到運行

from south.db import db 

,我沒有得到任何導入錯誤,所以我不認爲這是與在south是一個問題。我嘗試刪除所有其他應用程序(除了Django標準應用程序以外),並且在運行syncdb時仍然會創建表。

即使我完全刪除了INSTALLED_APPS,當我運行manage.py diffsettings時,仍然會得到舊列表INSTALLED_APPS。

任何想法我做錯了什麼?

感謝,

大教堂

+0

我想知道其他人是否知道** South **是什麼? – muhuk 2009-05-23 08:48:51

+0

我不是 – vikingosegundo 2009-05-23 13:05:44

+1

south是一個允許你使用Django進行遷移的應用程序 - 請參閱http://south.aeracode.org/ – 2009-05-23 18:15:19

回答

2

答案,原來,是我是一個白癡。我已經做到了這一點:

settings.py

... 
INSTALLED_APPS = (
    ... 
) 
... 

from localsettings import * 

localsettings.py

... 
INSTALLED_APPS = (
    ... 
) 
... 

我會從settings.py創建localsettings.py,包含的東西只對項目的當前位置相關的(像數據庫設置),並忘記刪除INSTALLED_APPS部分。

道歉做這樣一個公然愚蠢的事情。

3

如果你寫一個應用程序遷移,執行syncdb不會工作。 你必須使用

manage.py migrate 

執行syncdb不會工作的,其使用的南下遷移迷上應用。這些應用程序模型的變化只會根據南遷移歷史記錄而被發現。

South Migration Docs

相關問題