Django/ Python- 我应该 运行 在本地分支上进行迁移,还是仅在主分支上进行迁移?

Django/ Python- should I run makemigrations on a local branch, or only on master?

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

我正在 gitmaster 分支上进行开发,但我有点不确定 运行 在不同分支上迁移的最佳实践是什么(我对 Python/ Django 和 Git 都比较陌生)。

在我的开发分支上 运行 makemigrations 并在那里测试它是否明智,就像我一直在测试我到目前为止所做的错误修复一样,或者会我需要在 运行ning makemigrations?

之前将我的开发分支与 master 合并

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

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

这样你就永远不需要运行在任何其他分支上进行迁移,而只需要迁移命令。

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

如果迁移太多或者您愿意,您可以随时squash/merge迁移。

Squasing Migrations

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

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