我正在努力让South工作 - 它在我的电脑上运行良好,但我很难在我的虚拟主机上部署它。
现在似乎我在syncdb
或diffsettings
没有收到我在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
答案 0 :(得分:3)
如果您为应用程序编写迁移,则syncdb将无法运行。 你必须使用
manage.py migrate
syncdb不适用于使用south迁移的应用程序。这些应用程序模型更改将仅根据南迁移历史记录而被注意到。
答案 1 :(得分:2)
事实证明,答案是我是个白痴。我这样做了:
在settings.py
:
...
INSTALLED_APPS = (
...
)
...
from localsettings import *
在localsettings.py
...
INSTALLED_APPS = (
...
)
...
我从localsettings.py
创建了settings.py
,以包含仅与项目当前位置相关的内容(如数据库设置),并忘记删除INSTALLED_APPS
部分。< / p>
道歉做了这么愚蠢的事情。