代码之家  ›  专栏  ›  技术社区  ›  Dominic Rodger

Django未在settings.py中获取对已安装的应用程序的更改

  •  2
  • Dominic Rodger  · 技术社区  · 17 年前

    我正在努力南部工作-它在我的电脑上工作得很好,但我在努力将它部署到我的网络主机上。

    现在,我对已安装的应用程序添加/删除项目所做的任何更改似乎都不会被 syncdb diffsettings . 我补充说 south 到我已安装的应用程序列表中,但运行时没有创建它所需的表 同步CDB .如果我更改了其他设置,它们就会被接收,似乎只是安装了不起作用的应用程序。

    如果我跑

    from south.db import db
    

    从我得到的外壳 manage.py shell ,我没有收到任何导入错误,因此我认为在哪里不存在问题 南方 是。我已经尝试删除所有其他应用程序(除了Django标准应用程序),并且在运行时仍然会为它们创建表。 同步CDB .

    即使我完全删除已安装的应用程序,当我运行manage.py diffsettings时,仍然会得到已安装的应用程序的旧列表。

    知道我做错了什么吗?

    谢谢,

    DOM

    2 回复  |  直到 17 年前
        1
  •  3
  •   simplyharsh    17 年前

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

    manage.py migrate
    

    SyncDB不适用于使用South进行迁移时挂接的应用程序。这些应用程序模型的更改将仅取决于南部迁移历史记录。

    South Migration Docs

        2
  •  2
  •   Dominic Rodger    17 年前

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

    settings.py :

    ...
    INSTALLED_APPS = (
        ...
    )
    ...
    
    from localsettings import *
    

    localsettings.py

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

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

    为这样一件公然愚蠢的事道歉。