【问题标题】:How can you migrate Django models similar to Ruby on Rails migrations?如何迁移类似于 Ruby on Rails 迁移的 Django 模型?
【发布时间】:2009-05-12 15:04:24
【问题描述】:

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

【问题讨论】:

  • 好问题!!我也希望在 Django 中使用类似迁移的东西。
  • 也看到这个问题:stackoverflow.com/questions/426378/… 虽然那里最喜欢的答案是迁移的,这有问题。

标签: python django migration


【解决方案1】:

南部拥有最多的蒸汽。 dmigrations 是太基本的国际海事组织。 django-evolution 如果你碰过它外面的数据库,它就会尖叫。

到目前为止,南方是最强的竞争者。随着模型冻结和自动迁移,它已经走了很长一段路。

【讨论】:

  • South 给我留下了深刻的印象,但我的 django-evolution 看起来也很有趣。除非在接下来的几个小时内有更多答案,否则我会选择这个。
  • 如果你使用的是进化工具,你不应该接触它之外的数据库,所以我不认为这是一个争论。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    读完这篇文章,不到 1 小时,我就从“对数据模型演化一无所知”变成了“使用南方管理模型迁移”。 South 的文档非常出色,让我在创纪录的时间内跟上进度。没有看过提到的其他工具,我完全推荐它。

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-09
        • 2019-12-24
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        相关资源
        最近更新 更多