Django / Python-我应该在本地分支上运行makemigrations,还是仅在master上运行makemigrations?

时间:2017-01-23 16:36:16

标签: python django git migrate makemigrations

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

我正在git分支到master进行开发,但我不确定在不同分支上运行迁移方面的最佳做法是什么(我对两者都比较新) Python / Django& Git)。

在我的开发分支上运行makemigrations并在那里测试它是否合理,就像我测试到目前为止我已经处理过的bug修复一样,或者我是否需要合并我的开发在运行master之前使用makemigrations分支?

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

请参阅https://developers.google.com/web/tools/chrome-devtools/network-performance/resource-loading

答案 1 :(得分:0)

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

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