Django 不更新 settings.py 中的 INSTALLED_APPS 变更
我正在尝试让 South 这个工具正常工作——在我的电脑上它运行得很好,但我在我的网络主机上部署时遇到了困难。
现在看来,我对 INSTALLED_APPS 进行的任何添加或删除操作都没有被 syncdb
或 diffsettings
识别到。我已经把 south
加入到我的 INSTALLED_APPS 列表中,但当我运行 syncdb
时,它需要的表格并没有被创建。如果我更改其他设置,它们会被识别到,似乎只有 INSTALLED_APPS 这个部分不工作。
如果我在通过 manage.py shell
进入的命令行中运行
from south.db import db
我没有收到任何导入错误,所以我觉得问题不在于 south
的位置。我尝试过删除所有其他应用(除了 Django 自带的那些),但当我运行 syncdb
时,它们的表格仍然会被创建。
即使我完全删除 INSTALLED_APPS,当我运行 manage.py diffsettings 时,仍然会显示旧的 INSTALLED_APPS 列表。
你觉得我哪里做错了?
谢谢,
Dom
2 个回答
3
如果你为一个应用写了迁移文件,syncdb 就不能用了。
manage.py migrate
对于那些使用 South 进行迁移的应用,syncdb 是无法工作的。只有根据 South 的迁移历史,才能注意到这些应用的模型变化。
2
结果发现,我真是个傻瓜。我做了这样的事情:
在 settings.py
文件里:
...
INSTALLED_APPS = (
...
)
...
from localsettings import *
在 localsettings.py
文件里:
...
INSTALLED_APPS = (
...
)
...
我是从 settings.py
创建了 localsettings.py
,这个文件只包含与当前项目位置相关的内容(比如数据库设置),但我忘记删除 INSTALLED_APPS
这一部分了。
为我做了这么明显的傻事而道歉。