Django没有在settings.py中获取对INSTALLED_APPS的更改

时间:2009-05-23 07:15:27

标签: python django

我正在努力让South工作 - 它在我的电脑上运行良好,但我很难在我的虚拟主机上部署它。

现在似乎我在syncdbdiffsettings没有收到我在INSTALLED_APPS中添加/删除项目所做的任何更改。我已将south添加到我的INSTALLED_APPS列表中,但在运行syncdb时,不会创建所需的表。如果我更改了其他设置,它们会被拾取,它似乎只是INSTALLED_APPS不起作用。

如果我跑

from south.db import db

来自我使用manage.py shell的shell,我没有得到任何导入错误,所以我认为这不是south所在的问题。我已经尝试删除所有其他应用程序(除了Django标准的应用程序),当我运行syncdb时,它们的表仍然会被创建。

即使我完全删除了INSTALLED_APPS,当我运行manage.py diffsettings时,我仍然会得到旧的INSTALLED_APPS列表。

任何想法我做错了什么?

谢谢,

的Dom

2 个答案:

答案 0 :(得分:3)

如果您为应用程序编写迁移,则syncdb将无法运行。 你必须使用

manage.py migrate

syncdb不适用于使用south迁移的应用程序。这些应用程序模型更改将仅根据南迁移历史记录而被注意到。

South Migration Docs

答案 1 :(得分:2)

事实证明,答案是我是个白痴。我这样做了:

settings.py

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

from localsettings import *

localsettings.py

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

我从localsettings.py创建了settings.py,以包含仅与项目当前位置相关的内容(如数据库设置),并忘记删除INSTALLED_APPS部分。< / p>

道歉做了这么愚蠢的事情。