【问题标题】:Proper way to update model in Django在 Django 中更新模型的正确方法
【发布时间】:2012-02-02 22:11:32
【问题描述】:

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

【问题讨论】:

标签: django django-models django-syncdb


【解决方案1】:

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

syncdb 只会为尚未创建的模型创建表 安装。它永远不会发出 ALTER TABLE 语句来匹配更改 安装后制作成模型类。模型类的变化和 数据库模式通常涉及某种形式的歧义,并且在那些 在这种情况下,Django 将不得不猜测要做出的正确更改。 在此过程中存在丢失关键数据的风险。

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

是的,正如 Marcin 所说,您正在寻找 South。 或者,您可以尝试Nashvegas,对于小的更改,即使是django-extensions 的一部分sql_diff 也是一个可行的选择。

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    相关资源
    最近更新 更多