【问题标题】:Flattening Django South migrations?扁平化 Django South 迁移?
【发布时间】:2013-03-03 03:12:03
【问题描述】:

我已经读到,在将新代码推向生产之前,应该扁平化(南)迁移。 “扁平化迁移”是什么意思,为什么推荐它,在南方是如何做到的?

【问题讨论】:

    标签: python django django-south


    【解决方案1】:

    扁平化迁移意味着基本上只是将所有迁移分块在一起,以在迁移变得相当大时减少迁移的运行时间。 这是可能的,但不建议这样做,因为您将丢失所有迁移历史记录,从而使您运行的每个迁移都从 0 开始。

    我没有在任何地方读到“推荐”扁平化,所以我不能给你这条建议,如果你有链接,我很乐意阅读。

    我读过 Ruby on Rails 有这个功能,但也不推荐它。

    首先考虑这些问题:

    • 这是您真正想要的吗?你会失去所有的历史。
    • 这将导致迁移到版本 0,然后再次备份, 这会经常发生

    如果这样做是为了阻止任何丢失或乱序的迁移,我会使用

    python manage.py schemamigration myapp --merge
    

    或者最后但并非最不重要的是使用--update更新最新的迁移


    我在谷歌搜索时发现了这个问题,并认为它可以作为参考,它又包含指向其他 4 个问题的链接。

    Aggregate migrations in Rails

    【讨论】:

    • 我在新的两勺 django 书籍(测试版)中阅读了以下内容:“在开发 Django 应用程序时,在将新代码推送到生产环境之前将迁移扁平化为一个。换句话说,提交“刚刚足够的迁移”来完成工作。”但是,他们也说:“不要从生产中的现有项目中删除迁移”
    • 啊,是的,我相信他们指的是“扁平化”作为一个概念,而不是一种工作方法。但是,他们也可以指的是,您应该在将迁移推送到生产之前尝试将迁移组合到一个文件中,而不是推送来自 9 个不同人的 15 个不同文件。我不确定它是不是最好的,我不希望这样,但是,嘿,每个人都有。
    猜你喜欢
    • 1970-01-01
    • 2012-08-06
    • 2012-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2011-08-14
    相关资源
    最近更新 更多