由于syncdb
不会改变现有的表[1],我想知道登录数据库和改变结构的缺点是什么。
更具体地说,我想知道如果我更改字段的长度或类型(例如INT
到BIGINT
)可能会触发哪些潜在问题。
Django试图截断或改变值以适应模型中定义的范围会有任何问题吗?
答案 0 :(得分:1)
下行?如果你在谈论简单的项目,那么就没有了。做任何让你高兴的事:)。如果项目变大,那么请阅读下一段:P
如果它是较大的项目并且有其他贡献者(即使它没有),您需要对其进行版本控制。因此,手动更改很糟糕。因为你不能在不改变数据库的情况下回到早期版本....但是......
但是既然你正在谈论手动这样做,我觉得,我需要指出http://south.aeracode.org/
的存在这是完全由于您或许不应该手动执行此操作而创建的。
顺便说一句。我在这里徘徊,在脸颊上说话......不要认真对待这篇文章:P
答案 1 :(得分:1)
Django South是此问题的解决方案。这是一个“必须拥有”的应用程序(在这里我将不同意@ OdifYitsaeb的答案)在任何项目中,而不仅仅是大项目。它是如此简单和强大,如果你甚至在一个小小的个人项目中不使用它,你实际上是为自己创造了更多的工作。
很快就会在(我相信)1.7中加入Django核心,所以现在熟悉它是个好主意。