我正在开发一个用Python / Django编写的项目,并且最近对其中一个models
进行了一些更改。在进一步开发这个新功能之前,我想测试一下我现在所做的更改,但我知道我需要运行python manage.py makemigrations
&在我对python manage.py migrate
所做的更改生效之前models
。
我正在git
分支到master
进行开发,但我不确定在不同分支上运行迁移方面的最佳做法是什么(我对两者都比较新) Python / Django& Git)。
在我的开发分支上运行makemigrations
并在那里测试它是否合理,就像我测试到目前为止我已经处理过的bug修复一样,或者我是否需要合并我的开发在运行master
之前使用makemigrations
分支?
我知道如果我在我的开发分支上运行迁移,一旦我合并了我的更改,我将需要在master
上再次运行它们,但我只是想知道这种方法是否有任何危险或者我应该注意的事情?
答案 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与模型描述的当前状态同步。