【问题标题】:Django: What are the downsides of manually altering model fields with SQL? [closed]Django:使用 SQL 手动更改模型字段的缺点是什么? [关闭]
【发布时间】:2014-01-24 11:51:20
【问题描述】:

由于syncdb 不会更改现有表[1] 我想知道登录到数据库并更改结构会有什么缺点。

更具体地说,我想知道如果我更改字段的长度或类型(例如,INTBIGINT)会触发哪些潜在问题。

Django 尝试截断或更改值以适应模型中定义的范围是否会有任何问题?

【问题讨论】:

    标签: python sql django django-models


    【解决方案1】:

    缺点?如果您在谈论简单的项目,那么没有。做任何让你高兴的事:)。如果项目变得更大,请阅读下一段:P

    如果它是较大的项目并且有其他贡献者(即使没有),您需要对其进行版本控制。因此,手动更改是不好的。因为你不能在不改变数据库的情况下回到早期版本......但是......

    但既然你说的是手动操作,我觉得我需要指出http://south.aeracode.org/的存在

    创建它的原因可能是您不应该手动执行此操作。

    顺便说一句。我在这里拖钓并在脸颊上说舌头......不要100%认真对待这篇文章:P

    【讨论】:

    • 虽然我知道你的回答很轻松,但不熟悉该主题的人可能会发现很难弄清楚哪些是建议,哪些是笑话,所以我希望你不要'不介意我写了一个更具体的答案:)
    • 干得好,老伙计。投赞成票!
    【解决方案2】:

    Django South 是解决这个问题的方法。它是一个“必须拥有”的应用程序,可以包含在任何项目中(在这里我将不同意@OdifYitsaeb 的回答),而不仅仅是大型项目。它是如此简单和强大,如果你不在一个很小的个人项目中使用它,你实际上是在为自己创造更多的工作。

    (我相信)1.7 也很快将它包含在 Django 核心中,所以现在熟悉它是个好主意。

    【讨论】:

    • django-evolution 怎么样??
    • 这样说,django-evolution 并不是我见过的用于遗留 django 应用程序的最糟糕的架构迁移系统。感谢上帝赐予南方。
    • 没有南方,事情可能会发展......好吧..南方......
    猜你喜欢
    • 2011-04-01
    • 2010-10-11
    • 2010-09-12
    • 2011-12-28
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-09
    • 1970-01-01
    相关资源
    最近更新 更多