【问题标题】:Django not picking up changes to INSTALLED_APPS in settings.pyDjango 没有在 settings.py 中获取对 INSTALLED_APPS 的更改
【发布时间】:2010-10-28 09:56:59
【问题描述】:

我正在尝试让 South 工作 - 它在我的 PC 上运行良好,但我很难将它部署到我的网络主机上。

现在,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

【问题讨论】:

  • 不知道大家是否知道South是什么?
  • south 是一个允许您在 Django 中使用迁移的应用程序 - 请参阅 south.aeracode.org

标签: python django


【解决方案1】:

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

manage.py migrate

syncdb 不适用于使用 south 进行迁移的应用程序。这些应用程序模型的变化只会根据南迁历史而被注意到。

South Migration Docs

【讨论】:

  • 那行不通,因为南没有被认为是已安装的应用程序,所以我得到:未知命令:'迁移'。
  • 感谢您的尝试 - +1ed
【解决方案2】:

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

settings.py:

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

from localsettings import *

localsettings.py

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

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

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

【讨论】:

  • 哎呀!!!我想这就是原因,管理命令“迁移”是未知的。 Coz south 在已安装的应用程序元组中找不到。
猜你喜欢
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
相关资源
最近更新 更多