1

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

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

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

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

4

2 回答 2

2

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

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

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

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

Squasing Migrations

于 2017-01-23T16:47:14.340 回答
0

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

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

于 2017-01-23T16:49:12.673 回答