2013-07-04 136 views
2

我有一个遗留数据库,我在Django的应用程序中使用。我使用django管理功能从现有表中生成models.py文件。Django模型 - 数据库更改

如果我对模型进行了更改,例如为模型添加unique_together约束,是由Django管理的更改,还是必须以某种方式将所述模型更改应用于数据库?

回答

3

为了让django检测到更改,您需要使用名为south的第三方迁移工具。现在,由于您已经承诺运行python manage.py syncdb,因此您需要删除表格并重新开始。

这是你如何做到这一点(已删除后您的表):

  1. 安装使用pip install south
  2. 添加南至安装的应用程序南部,并确保所有其他应用程序之前来到你创建
  3. 运行以下命令:python manage.py schemamigration --inital <your app name>
  4. 运行以下命令:python manage.py migrate <your app name>
  5. 运行以下命令:python manage.py syncdb < - 最后一次你将需要运行它:)

希望这有助于。

+0

不错的答案。 HOwever最后不需要'syncdb'。 – karthikr

+0

@ karthikr:如果你是第一次做这些,你会这么做的。 –