2012-02-02 25 views
1

我一直在Django中修改模型。然而,在我这样做后,我必须进入数据库,手动删除表,然后manage.py syncdb。我尝试了manage.py reset <<app_name>>,但它没有下降,然后用新字段重新安装模型。什么是正确的方法来做到这一点或是进入数据库,删除,然后syncdb的最佳方式?在Django中更新模型的正确方法

+1

[Django工作流在频繁修改模型时可能有重复?](http://stackoverflow.com/questions/497654/django-workflow-when-modifying-models-frequently) – Marcin 2012-02-02 22:15:11

+3

使用南:south.aeracode.org/ – Marcin 2012-02-02 22:15:26

+0

@Marcin谢谢你,我正在寻找 – Alexis 2012-02-02 22:47:17

回答

2

您所描述的行为是明确的docs提到:

执行syncdb只会创造模式尚未被安装 表。它将永远不会发出ALTER TABLE语句,以便在安装后匹配对模型类所做的更改 。对模型类和 数据库模式的更改通常涉及某种形式的模糊性,并且在那些案例中,Django将不得不猜测正确的更改。 在此过程中可能会丢失关键数据。

你是什么之后是数据库迁移的工具和is a large problem mostly solved ;-)

所以,是的,作为马辛说,你正在寻找South。 或者,你可以尝试Nashvegas和小的变化,即使sql_diff这是django-extensions的一部分是一个可行的选择。