【问题标题】:Django/ Python- should I run makemigrations on a local branch, or only on master?Django / Python-我应该在本地分支上运行makemigrations,还是只在master上运行?
【发布时间】:2017-06-08 05:57:31
【问题描述】:

我正在从事一个用 Python/Django 编写的项目,最近对models 之一进行了一些更改。在我进一步开发这个新功能之前,我想测试我现在所做的更改,但我知道在我所做的更改之前我需要运行 python manage.py makemigrationspython manage.py migrate models 生效。

我正在一个单独的 git 分支上进行开发到 master,但我有点不确定在不同分支上运行迁移方面的最佳实践是什么(我对 Python/Django 和吉特)。

在我的开发分支上运行makemigrations 并在那里测试它是否明智,就像我一直在测试我迄今为止所做的错误修复一样,或者我需要将我的开发分支与master 在运行之前makemigrations

我知道如果我确实在我的开发分支上运行迁移,一旦我合并我的更改,我将需要在master 上再次运行它们,但我只是想知道这种方法是否存在任何危险,或者我应该注意什么?

【问题讨论】:

    标签: python django git migrate makemigrations


    【解决方案1】:

    通常,您会在您的开发分支上进行一次 makemigrations,然后将代码(在本例中为迁移文件)移动到更高的分支(UAT、Staging、Master 等)。

    这样您就不需要在任何其他分支上运行 makemigrations,而只需要 migrate 命令。

    您可以根据需要拥有任意数量的迁移文件,它不会真正影响性能并且经过高度优化

    如果迁移过多或您希望这样做,您始终可以压缩/合并您的迁移。

    Squasing Migrations

    【讨论】:

      【解决方案2】:

      运行 makemigrations 将自动在您修改模型的应用程序的“迁移”文件夹中创建 python 文件。这些文件必须在 git 中进行版本控制,因为它们无法与您对模型的修改分离。

      然后,当您合并您的分支时,模型中的修改和相应的迁移都将在 git 树中。因此,下一次调用migrate 将使数据库与模型描述的当前状态同步。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-14
        • 2015-12-19
        相关资源
        最近更新 更多