如何将Django模型迁移类似于Ruby on Rails的迁移?
Django有一些开源项目,专门解决这个框架一个比较明显的“缺失功能”:模型的“演变”。Ruby on Rails本身就支持“迁移”,也就是数据库结构的变更,但我想知道有没有人能推荐以下这些Django的“演变”项目:
4 个回答
2
看完这篇文章后,我从“对数据模型演变一无所知”变成了“用South来管理模型迁移”,不到一个小时就搞定了。South的文档写得非常好,让我迅速上手。我没有去看其他提到的工具,但我完全推荐South。
更新:大约一个月前我发了这个回答之后,我经历了几次数据模型的审查,从简单的字段重命名到完全用新表替换旧表都有。虽然South不能完全自动化处理所有事情(比如重命名看起来像是删除和添加),但它的文档能很好地引导你完成手动步骤。
我会在未来的任何项目中使用South。真是个棒棒的工具!
5
South和django-evolution绝对是最好的选择。在我看来,South的模型冻结和自动提示功能还是有点脆弱(而django-evolution的提示在一些特殊情况下要强大得多),不过自从去年夏天以来,django-evolution的开发似乎基本停滞了。如果我现在要开始的话,可能会选择South,主要就是这个原因。
10
South 是目前最有实力的选择。dmigrations 在我看来太简单了。而 django-evolution 如果你在它之外对数据库进行任何操作,就会出现很多问题。
South 是最强的竞争者。通过模型冻结和自动迁移,它已经发展得很好了。