在Django中更新模型的正确方法

时间:2012-02-02 22:11:32

标签: django django-models django-syncdb

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

1 个答案:

答案 0 :(得分:2)

docs中明确提到了您描述的行为:

  

syncdb只会为尚未使用的模型创建表   安装。它永远不会发出ALTER TABLE语句来匹配更改   安装后进入模型类。对模型类和。的更改   数据库模式通常涉及某种形式的歧义,并且在那些模式中   例如,Django必须猜测正确的变化。   存在关键数据在此过程中丢失的风险。

您所使用的是用于数据库迁移的工具以及is a large problem mostly solved; - )

所以是的,正如Marcin所说,你正在寻找South。 或者,您可以尝试使用Nashvegas,对于小的更改,sql_diffdjango-extensions是{{3}}的一部分,这是一个可行的选择。