如何迁移类似于Ruby on Rails迁移的Django模型?

时间:2009-05-12 15:04:24

标签: python django migration

Django有许多开源项目,可以解决其中一个更值得注意的框架missing features:模型“evolution”。 Ruby on Rails本身支持migrations,但我很好奇是否有人可以推荐以下Django“evolution”项目之一:

4 个答案:

答案 0 :(得分:10)

南方拥有最多的蒸汽。 dmigrations太基础IMO。如果你碰到它外面的数据库,django-evolution会尖叫。

南方是迄今为止最强大的竞争者。随着模型冻结和自动迁移,它将走很长的路。

答案 1 :(得分:5)

南方和django-evolution当然是最好的选择。根据我的经验,南方的模型冻结和自动提示仍然非常脆弱(django-evolution的暗示在边缘情况下更加强大),但是自去年夏天以来,django-evolution的发展似乎大多停滞不前。如果我现在开始,我可能会选择南方,主要是因为这个原因。

答案 2 :(得分:2)

阅读完本文后,我在不到1小时的时间内从“对数据模型演变一无所知”变为“使用南方来管理模型迁移”。 South的文档很出色,让我在创纪录的时间内保持最快速度。没有看过提到的其他工具,我完全推荐它。

更新:自从大约一个月前发布这个答案以来,我经历了几个数据模型评论,从简单的字段重命名到完全用新的表替换一些表。 South无法以完全自动化的方式执行所有操作(例如,重命名看起来像删除和添加),但文档可以指导您顺利完成手动步骤。

我将把南方带入任何未来的项目。神奇的工具!

答案 3 :(得分:1)

我是开发dmigrations的团队的成员 - 但我会全心全意地推荐South。它更加成熟,正在积极开发中,并且具有一些杀手功能,如ORM冻结(如果你试图在dmigrations中使用ORM代码,那么改变你的模型,你就会陷入痛苦的世界)。