我一直在Django中修改我的模型。但是在我这样做之后,我必须进入数据库,手动删除表,然后manage.py syncdb
。我尝试了manage.py reset <<app_name>>
,但它没有丢弃,然后用新字段重新安装模型。执行此操作的正确方法是什么,或者是进入数据库,删除,然后是syncdb的最佳方式?
答案 0 :(得分:2)
docs中明确提到了您描述的行为:
syncdb只会为尚未使用的模型创建表 安装。它永远不会发出ALTER TABLE语句来匹配更改 安装后进入模型类。对模型类和。的更改 数据库模式通常涉及某种形式的歧义,并且在那些模式中 例如,Django必须猜测正确的变化。 存在关键数据在此过程中丢失的风险。
您所使用的是用于数据库迁移的工具以及is a large problem mostly solved; - )
所以是的,正如Marcin所说,你正在寻找South。
或者,您可以尝试使用Nashvegas,对于小的更改,sql_diff
即django-extensions
是{{3}}的一部分,这是一个可行的选择。